# Onyx Licensing Details: MIT Community Edition vs. Enterprise License

> Understand Onyx licensing: explore the MIT Community Edition and proprietary Enterprise License details. See clear separation in the ee directory.

- Repository: [Onyx/onyx](https://github.com/onyx-dot-app/onyx)
- Tags: licensing-details
- Published: 2026-03-28

---

**Onyx is dual-licensed under the MIT Expat License for the Community Edition and the proprietary Onyx Enterprise License for EE components, with clear separation at the `ee/` directory boundaries.**

The `onyx-dot-app/onyx` repository employs a dual-licensing strategy that distinguishes between open-source Community Edition code and commercial Enterprise Edition features. Understanding the licensing details for Onyx is critical for developers integrating the platform into proprietary applications or contributing to the codebase. The licensing structure is explicitly defined in the top-level `LICENSE` file and mirrored across Enterprise Edition subdirectories.

## MIT License: The Community Edition

All files residing outside of any `ee/` directory fall under the permissive **MIT Expat License**. According to the source code in `onyx-dot-app/onyx`, the root `LICENSE` file defines these terms in lines 10-28, granting users the freedom to use, modify, and redistribute the Community Edition provided the original copyright notice is preserved.

The repository README reinforces this licensing model through visual and textual cues. An MIT badge appears near line 20 (`![License: MIT](...)`), and line 96 explicitly states: "Onyx Community Edition (CE) is available freely under the MIT license." This applies to core functionality located in standard directories such as `backend/onyx/` and `web/src/app/` outside of any `ee/` subfolders.

## Onyx Enterprise License: Commercial Components

Any code located within `ee/` directories—including `backend/ee/`, `web/src/app/ee/`, and `web/src/ee/`—is governed by the proprietary **Onyx Enterprise License**. The root `LICENSE` file explains this restriction in lines 3-9, noting that third-party components retain their original licenses while Enterprise components require compliance with DanswerAI, Inc.'s commercial terms.

To ensure clarity, each Enterprise directory contains an identical copy of the Enterprise License. For example, `backend/ee/LICENSE`, `web/src/app/ee/LICENSE`, and `web/src/ee/LICENSE` all replicate the commercial terms, making the licensing boundaries unambiguous for commercial users evaluating Enterprise features such as advanced connectors or administrative tooling.

## Programmatically Identifying License Boundaries

Developers can automate license compliance checks by detecting the `ee/` path segment. The following Node.js utility distinguishes between MIT-licensed Community Edition files and Enterprise-licensed components:

```javascript
import fs from 'fs';
import path from 'path';

function isMITLicensed(filePath) {
  // Any path that does NOT contain "/ee/" is MIT-licensed
  return !filePath.includes(`${path.sep}ee${path.sep}`);
}

// Usage examples
console.log(isMITLicensed('backend/onyx/auth/auth.py')); // true (MIT)
console.log(isMITLicensed('backend/ee/license_manager.py')); // false (Enterprise)

```

This approach leverages the directory structure defined in the repository to programmatically enforce licensing boundaries during CI/CD pipelines or dependency scanning.

## Automating License Badge Maintenance

The repository includes an MIT badge in the README to signal the open-source nature of the Community Edition. Teams can automate badge updates using GitHub Actions, ensuring the shield remains synchronized with the root `LICENSE` file:

```yaml
name: Update README badge
on:
  push:
    branches: [main]

jobs:
  badge:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Insert MIT badge
        run: |
          sed -i '2i[![License: MIT](https://img.shields.io/static/v1?label=license&message=MIT&color=blue)](https://github.com/onyx-dot-app/onyx/blob/main/LICENSE)' README.md
      - name: Commit changes
        uses: stefanzweifel/git-auto-commit-action@v4
        with:
          commit_message: "Refresh MIT badge"

```

This workflow inserts the MIT badge at line 2 of the README, maintaining consistency with the licensing details specified in the repository documentation.

## Key Licensing Files

The following files define the legal boundaries between Community and Enterprise editions:

- **`LICENSE`** (root): Defines MIT terms for core code (lines 10-28) and explains Enterprise restrictions (lines 3-9)
- **`backend/ee/LICENSE`**: Enterprise License copy for backend EE components
- **`web/src/app/ee/LICENSE`**: Enterprise License copy for web application EE components  
- **`web/src/ee/LICENSE`**: Enterprise License copy for standalone web EE components
- **[`README.md`](https://github.com/onyx-dot-app/onyx/blob/main/README.md)**: High-level licensing description with MIT badge and explicit CE licensing statement (line 96)

## Summary

- **Onyx uses dual-licensing**: MIT Expat for Community Edition, proprietary Onyx Enterprise License for EE components
- **Directory-based separation**: All `ee/` directories contain Enterprise code; everything else is MIT-licensed
- **Root LICENSE clarity**: Lines 3-9 explain Enterprise restrictions; lines 10-28 define MIT terms
- **Commercial requirements**: Using Enterprise features requires compliance with DanswerAI, Inc.'s commercial agreement
- **Programmatic detection**: Checking for `/ee/` in file paths reliably distinguishes license types

## Frequently Asked Questions

### Is Onyx fully open source?

No, Onyx is not fully open source. While the Community Edition is released under the permissive MIT Expat License, the Enterprise Edition components located in `ee/` directories are protected under the proprietary Onyx Enterprise License, which imposes commercial usage restrictions.

### Can I use Onyx Community Edition in commercial products?

Yes. The MIT License allows embedding Onyx Community Edition in proprietary software, provided you retain the original copyright notice and license text as specified in the root `LICENSE` file lines 10-28. This includes modification and redistribution without requiring source code disclosure.

### What features require the Onyx Enterprise License?

Features located within any `ee/` directory—such as advanced connectors, enterprise-grade admin tooling, and enhanced security modules—require compliance with the Onyx Enterprise License. These components are clearly marked with separate `LICENSE` files in directories like `backend/ee/` and `web/src/app/ee/`.

### How do I contribute to Onyx without violating the Enterprise License?

Contributions to non-EE directories automatically fall under the MIT License terms. When submitting pull requests, ensure your changes target files outside the `ee/` directories unless you have explicit authorization from DanswerAI, Inc. to modify Enterprise components under their commercial terms.