Files
git.stella-ops.org/docs/legal/PLUGIN_DEVELOPER_FAQ.md

292 lines
11 KiB
Markdown

# Plugin Developer FAQ
**Document Version:** 1.0.0
**Last Updated:** 2026-01-25
This FAQ addresses common questions from plugin developers working with the Stella Ops
Community Plugin Grant. For the full legal terms, see `LICENSE-ADDENDUM-COMMUNITY-PLUGIN-GRANT.md`
in the repository root.
---
## General Questions
### Q1: What constitutes a "Plugin" under the Community Plugin Grant?
**A:** A Plugin is a separately packaged extension that interfaces with Stella Ops using
documented public plugin APIs or integration points. This includes:
**Examples of Plugins:**
- Custom vulnerability connectors (e.g., integrating a proprietary vulnerability database)
- CI/CD integrations (e.g., Jenkins, GitLab CI, Azure DevOps plugins)
- Output formatters (e.g., custom report templates, dashboard integrations)
- Notification connectors (e.g., Slack, Teams, PagerDuty integrations)
- Scanner analyzers (e.g., language-specific dependency parsers)
- Policy gates (e.g., custom compliance rules)
**NOT Plugins (derivative works requiring BUSL-1.1 compliance):**
- Modifications to Stella Ops core source code
- Forks that include modified Stella Ops components
- Extensions that copy substantial portions of Stella Ops internals
### Q2: Can I sell my plugin commercially?
**A:** Yes. You may develop and sell plugins commercially under license terms of your
choosing (including proprietary terms), provided:
1. Your plugin does not include, copy, or modify Stella Ops source code; AND
2. You comply with the attribution requirements (see Q4).
Your commercial plugin license is entirely separate from the BUSL-1.1 license covering
Stella Ops itself.
### Q3: Do I need to open-source my plugin?
**A:** No. Plugins that interface with Stella Ops through public APIs do not need to be
open-sourced. You may use any license you choose, including proprietary licenses.
**Exception:** If your plugin includes, copies, or modifies any portion of Stella Ops
source code, it becomes a derivative work subject to BUSL-1.1.
### Q4: What attribution is required when distributing a plugin?
**A:** When distributing a plugin, you should:
1. **Acknowledge compatibility:** State that your plugin is designed for use with
Stella Ops (e.g., "Compatible with Stella Ops Suite")
2. **Include license reference:** If your plugin distribution includes any Stella Ops
components (even configuration samples), include the LICENSE and NOTICE files
3. **Link to source:** Provide a link to the Stella Ops source repository
(https://git.stella-ops.org)
**Minimum attribution example:**
```
This plugin is designed for use with Stella Ops Suite.
Stella Ops is licensed under BUSL-1.1. See https://git.stella-ops.org
```
---
## Usage Limits
### Q5: What counts as an "Environment"?
**A:** An Environment is a logically separated workspace within a Stella Ops installation.
The free tier allows up to 3 Environments per installation.
**Each of these counts as one Environment:**
- A "Development" environment for testing scans
- A "Staging" environment for pre-production validation
- A "Production" environment for live deployments
- A tenant/workspace in a multi-tenant setup
- A project or team workspace with isolated configuration
**These do NOT count as separate Environments:**
- High-availability replicas of the same environment
- Read replicas or cache nodes
- Backup/disaster recovery instances (if not actively used)
**Example scenarios:**
| Scenario | Environment Count |
|----------|------------------|
| Single dev laptop installation | 1 |
| Dev + Staging + Prod for one team | 3 |
| Two separate teams, each with Dev + Prod | 4 (requires commercial license) |
| MSP hosting 5 isolated customer instances | 5 (requires commercial license) |
### Q6: What counts as a "Scan"?
**A:** A Scan is one completed execution of Stella Ops' vulnerability or artifact analysis
pipeline that produces a new result. The free tier allows up to 999 Scans per calendar day.
**Counts as a Scan:**
- First-time scan of a container image (new hash)
- Re-scan of a modified image (hash changed)
- SBOM generation for a new artifact
- VEX statement generation for new findings
**Does NOT count as a Scan:**
- Cache hits (retrieving previously scanned results)
- Viewing existing scan reports
- Policy evaluation on cached data
- API queries for existing results
**Deduplication:** Stella Ops uses hash-based deduplication. Scanning the same artifact
multiple times only counts as one Scan if the hash hasn't changed.
### Q7: What happens if my users exceed the free limits?
**A:** If users of your plugin exceed the free tier limits (3 Environments or 999 Scans/day):
1. **They need a commercial license** - The user (not the plugin developer) is responsible
for licensing compliance
2. **Your plugin continues to work** - There's no technical enforcement in the plugin itself
3. **Quota enforcement is server-side** - Stella Ops may introduce delays after limits
are exceeded (see `docs/legal/30_QUOTA_ENFORCEMENT_FLOW1.md`)
As a plugin developer, you should:
- Document the free tier limits in your plugin documentation
- Recommend users contact stella-ops.org for commercial licensing if they exceed limits
- Not build quota circumvention into your plugin
---
## Bundling & Distribution
### Q8: Can I bundle Stella Ops core with my plugin?
**A:** This depends on how you bundle:
**Allowed (aggregation):**
- Shipping your plugin alongside Stella Ops as separate components
- Docker Compose files that reference Stella Ops images
- Helm charts that deploy Stella Ops as a dependency
- Installation scripts that download Stella Ops separately
**Requires BUSL-1.1 compliance (derivative work):**
- Embedding Stella Ops source code into your plugin
- Modifying Stella Ops binaries and redistributing
- Creating a single binary that includes Stella Ops components
**Requires commercial license:**
- Bundling into a competing managed service offering
- White-labeling Stella Ops functionality
### Q9: Can I create a plugin that modifies Stella Ops behavior at runtime?
**A:** Yes, if the modification uses documented extension points:
**Allowed:**
- Plugins that register custom handlers via plugin APIs
- Extensions that add new endpoints or processing steps
- Integrations that intercept and transform data via documented hooks
**Not allowed without BUSL-1.1 derivative work compliance:**
- Runtime patching of Stella Ops binaries
- Monkey-patching internal classes or methods
- Replacing core components at runtime
The key distinction is whether you're using **documented public APIs** (allowed) vs.
**undocumented internal behavior** (derivative work).
---
## Commercial Considerations
### Q10: Can my plugin be used with Stella Ops commercial/SaaS offerings?
**A:** Yes. Plugins designed for the Community Plugin Grant are compatible with commercial
Stella Ops deployments. Commercial customers may use community plugins subject to their
commercial license terms.
### Q11: Do I need Licensor approval to publish a plugin?
**A:** No. You do not need approval from stella-ops.org to:
- Develop plugins
- Publish plugins (open source or commercial)
- List plugins in third-party marketplaces
However, stella-ops.org may maintain an official plugin registry with quality/security
standards for listed plugins.
### Q12: Can MSPs provide plugins to their managed customers?
**A:** Yes, with these considerations:
1. **Plugin distribution:** MSPs can freely distribute plugins to customers
2. **Stella Ops licensing:** Each customer deployment must comply with BUSL-1.1:
- Within free tier limits; OR
- Covered by MSP's commercial license; OR
- Customer has their own commercial license
See `docs/legal/SAAS_MSP_GUIDANCE.md` for detailed MSP scenarios.
---
## Edge Cases
### Q13: Does the Community Plugin Grant apply to unofficial API integrations?
**A:** The grant specifically covers plugins using "documented public plugin APIs or
integration points." For unofficial or undocumented APIs:
- Using undocumented APIs is at your own risk (they may change without notice)
- The Community Plugin Grant still applies if you're not modifying source code
- Relying on internal implementation details may create a derivative work
**Recommendation:** Use documented APIs for stable, supported integration.
### Q14: Can I fork Stella Ops and call it something else?
**A:** Forking is allowed under BUSL-1.1, but:
1. **BUSL-1.1 applies to the fork** - Production use requires compliance with the
Additional Use Grant or a commercial license
2. **Attribution required** - You must preserve LICENSE, NOTICE, and copyright notices
3. **No trademark use** - You may not use Stella Ops trademarks for your fork
4. **Change Date applies** - After the Change Date (2030-01-20), the fork converts to
Apache-2.0
### Q15: What if my plugin becomes popular and used beyond free tier limits?
**A:** Success is good! If your plugin enables usage beyond free tier limits:
1. **Users are responsible for licensing** - Not you as the plugin developer
2. **Consider partnership** - Contact stella-ops.org about potential partnership or
revenue sharing arrangements
3. **Document clearly** - Ensure your plugin documentation explains licensing requirements
### Q16: Can I host a free scanning service for the community using my plugin?
**A:** The BUSL-1.1 restriction specifically targets "public multi-tenant **paid** hosting."
Non-commercial, free-of-charge hosting for community benefit may be eligible for the
Community Program.
**Potentially eligible:**
- Free scanning for open source projects
- Academic/educational free access
- Non-profit services for other non-profits
**Not eligible (requires commercial license):**
- "Free tier" that upsells to paid services
- Free scanning bundled with paid consulting
- Any scenario where the free service drives commercial revenue
**Process:** Apply to the Community Program at community@stella-ops.org. Approval is
not automatic and is evaluated based on genuine community benefit.
See `docs/legal/SAAS_MSP_GUIDANCE.md` Section 4.3 for detailed guidance.
---
## Getting Help
**Technical questions about plugin development:**
- Documentation: `docs/plugins/`
- Community forum: https://community.stella-ops.org
**Licensing questions:**
- Email: legal@stella-ops.org
- FAQ: This document and `docs/legal/LEGAL_FAQ_QUOTA.md`
**Commercial licensing:**
- Email: sales@stella-ops.org
- Website: https://stella-ops.org/pricing
---
## See Also
- `LICENSE-ADDENDUM-COMMUNITY-PLUGIN-GRANT.md` - Full legal terms
- `docs/legal/LEGAL_FAQ_QUOTA.md` - Quota and free tier FAQ
- `docs/legal/SAAS_MSP_GUIDANCE.md` - MSP and SaaS guidance
- `docs/legal/LICENSE-COMPATIBILITY.md` - License compatibility for dependencies
---
*Document maintained by: Legal + Developer Relations*
*Last review: 2026-01-25*