consolidation of some of the modules, localization fixes, product advisories work, qa work
This commit is contained in:
@@ -115,6 +115,44 @@ public interface IIntegrationPlugin
|
||||
- Plugin discovery is triggered on startup and on-demand; results are cached
|
||||
- Integration queries use indexed tenant_id + type columns for fast filtering
|
||||
|
||||
## IDE Extensions (VS Code, JetBrains)
|
||||
|
||||
The Integrations module also owns the IDE extension plugins, located under `src/Integrations/__Extensions/`. These are non-.NET projects that provide developer-facing tooling consuming the same Orchestrator/Router APIs as other integrations.
|
||||
|
||||
### VS Code Extension (`__Extensions/vscode-stella-ops/`)
|
||||
|
||||
- **Technology:** TypeScript, VS Code Extension API
|
||||
- **Build:** `npm run compile` (TypeScript compilation)
|
||||
- **Features:** Tree views for releases and environments, CodeLens annotations for `stella.yaml`, command palette integration, status bar widget
|
||||
- **Manifest:** `package.json` (extension manifest, commands, views, configuration)
|
||||
|
||||
### JetBrains Plugin (`__Extensions/jetbrains-stella-ops/`)
|
||||
|
||||
- **Technology:** Kotlin, IntelliJ Platform SDK
|
||||
- **Build:** Gradle (`./gradlew build`)
|
||||
- **Features:** Tool windows (Releases/Environments/Deployments tabs), YAML annotator, action menus, status bar widget
|
||||
- **Entry point:** `StellaOpsPlugin.kt`
|
||||
|
||||
### Design Principles (Extensions)
|
||||
|
||||
1. **Thin client** - Extensions contain no business logic; all state and decisions live in backend services
|
||||
2. **Consistent experience** - Both plugins expose equivalent functionality despite different technology stacks
|
||||
3. **Non-blocking** - All API calls are asynchronous; the IDE remains responsive during network operations
|
||||
4. **Offline-tolerant** - Graceful degradation when the Stella Ops backend is unreachable
|
||||
|
||||
### Data Flow (Extensions)
|
||||
|
||||
```
|
||||
[Developer IDE] --> [Extension/Plugin]
|
||||
|
|
||||
+-- GET /api/v1/releases/* --------> [Orchestrator API]
|
||||
+-- GET /api/v1/environments/* ----> [Orchestrator API]
|
||||
+-- POST /api/v1/promotions/* -----> [Orchestrator API]
|
||||
+-- POST /oauth/token -------------> [Authority]
|
||||
```
|
||||
|
||||
Authentication uses OAuth tokens obtained from the Authority service, stored in the IDE's secure credential store (VS Code `SecretStorage`, JetBrains `PasswordSafe`).
|
||||
|
||||
## References
|
||||
|
||||
- [Module README](./README.md)
|
||||
|
||||
Reference in New Issue
Block a user