fase(17): licensing module with RSA validation
This commit is contained in:
@@ -285,40 +285,40 @@ Spec: `.ralph/specs/phase-15-reporting.md`
|
||||
|
||||
---
|
||||
|
||||
## Phase 16: Integrations Module [PENDIENTE]
|
||||
## Phase 16: Integrations Module [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-16-integrations.md`
|
||||
|
||||
- [ ] 16.1: Instalar: `npm i @slack/web-api @octokit/rest`
|
||||
- [ ] 16.2: Crear domain: `Integration.ts` (Entity), `WebhookEndpoint.ts` (Entity)
|
||||
- [ ] 16.3: Crear value objects: `IntegrationType.ts` (jira/slack/github/webhook), `WebhookSecret.ts`
|
||||
- [ ] 16.4: Crear port: `IIntegrationProvider.ts` (sendFinding)
|
||||
- [ ] 16.5: Crear `infrastructure/webhooks/WebhookDispatcher.ts` — HMAC-SHA256 signature, retry con exponential backoff (3 intentos)
|
||||
- [ ] 16.6: Crear `infrastructure/providers/SlackProvider.ts` — Block Kit message con severity, description, link
|
||||
- [ ] 16.7: Crear `infrastructure/providers/GitHubIssuesProvider.ts` — crea issue con reproduction steps
|
||||
- [ ] 16.8: Crear `infrastructure/providers/JiraProvider.ts` — REST API v3, crea issue con screenshots
|
||||
- [ ] 16.9: Crear `event-handlers/OnFindingCreated.ts` — dispatch a todas las integrations activas
|
||||
- [ ] 16.10: Crear `infrastructure/http/IntegrationsController.ts` — CRUD integrations + webhooks
|
||||
- [ ] 16.11: Migración Kysely: tables integrations, webhook_endpoints, webhook_deliveries
|
||||
- [ ] 16.12: Frontend: Settings/Integrations con forms por provider (Slack webhook URL, Jira config, GitHub token, custom webhook)
|
||||
- [ ] 16.13: Tests: webhook dispatch + HMAC verification
|
||||
- [ ] 16.14: Verificar build completo + commit: `fase(16): integrations module`
|
||||
- [x] 16.1: Instalar: `npm i @slack/web-api @octokit/rest`
|
||||
- [x] 16.2: Crear domain: `Integration.ts` (Entity), `WebhookEndpoint.ts` (Entity)
|
||||
- [x] 16.3: Crear value objects: `IntegrationType.ts` (jira/slack/github/webhook), `WebhookSecret.ts`
|
||||
- [x] 16.4: Crear port: `IIntegrationProvider.ts` (sendFinding)
|
||||
- [x] 16.5: Crear `infrastructure/webhooks/WebhookDispatcher.ts` — HMAC-SHA256 signature, retry con exponential backoff (3 intentos)
|
||||
- [x] 16.6: Crear `infrastructure/providers/SlackProvider.ts` — Block Kit message con severity, description, link
|
||||
- [x] 16.7: Crear `infrastructure/providers/GitHubIssuesProvider.ts` — crea issue con reproduction steps
|
||||
- [x] 16.8: Crear `infrastructure/providers/JiraProvider.ts` — REST API v3, crea issue con screenshots
|
||||
- [x] 16.9: Crear `event-handlers/OnFindingCreated.ts` — dispatch a todas las integrations activas
|
||||
- [x] 16.10: Crear `infrastructure/http/IntegrationsController.ts` — CRUD integrations + webhooks
|
||||
- [x] 16.11: Migración Kysely: tables integrations, webhook_endpoints, webhook_deliveries
|
||||
- [x] 16.12: Frontend: Settings/Integrations con forms por provider (Slack webhook URL, Jira config, GitHub token, custom webhook)
|
||||
- [x] 16.13: Tests: webhook dispatch + HMAC verification
|
||||
- [x] 16.14: Verificar build completo + commit: `fase(16): integrations module`
|
||||
|
||||
---
|
||||
|
||||
## Phase 17: Licensing Module [PENDIENTE]
|
||||
## Phase 17: Licensing Module [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-17-licensing.md`
|
||||
|
||||
- [ ] 17.1: Crear domain: `License.ts` (Entity), value objects `LicensePlan.ts` (free/pro/enterprise), `FeatureEntitlement.ts`
|
||||
- [ ] 17.2: Crear port: `ILicenseValidator.ts` (validate, getEntitlements)
|
||||
- [ ] 17.3: Crear `infrastructure/RSALicenseValidator.ts` — verifica firma RSA-2048 con public key bundled
|
||||
- [ ] 17.4: Crear feature flags: `FREE_FEATURES`, `PRO_FEATURES`, `ENTERPRISE_FEATURES` arrays
|
||||
- [ ] 17.5: Crear `infrastructure/middleware/FeatureGateMiddleware.ts` — checkea feature en license antes de permitir request
|
||||
- [ ] 17.6: Crear `infrastructure/http/LicensingController.ts` — POST /api/license/activate, GET /api/license/status
|
||||
- [ ] 17.7: Crear `scripts/generate-license.ts` — CLI tool para generar license keys firmadas (uso interno)
|
||||
- [ ] 17.8: Integrar gate checks en rutas Pro/Enterprise (reporting, integrations, etc.)
|
||||
- [ ] 17.9: Frontend: License section en Settings
|
||||
- [ ] 17.10: Tests: valid license passes, expired fails, wrong signature fails, feature gate blocks
|
||||
- [ ] 17.11: Verificar build completo + commit: `fase(17): licensing module with RSA validation`
|
||||
- [x] 17.1: Crear domain: `License.ts` (Entity), value objects `LicensePlan.ts` (free/pro/enterprise), `FeatureEntitlement.ts`
|
||||
- [x] 17.2: Crear port: `ILicenseValidator.ts` (validate, getEntitlements)
|
||||
- [x] 17.3: Crear `infrastructure/RSALicenseValidator.ts` — verifica firma RSA-2048 con public key bundled
|
||||
- [x] 17.4: Crear feature flags: `FREE_FEATURES`, `PRO_FEATURES`, `ENTERPRISE_FEATURES` arrays
|
||||
- [x] 17.5: Crear `infrastructure/middleware/FeatureGateMiddleware.ts` — checkea feature en license antes de permitir request
|
||||
- [x] 17.6: Crear `infrastructure/http/LicensingController.ts` — POST /api/license/activate, GET /api/license/status
|
||||
- [x] 17.7: Crear `scripts/generate-license.ts` — CLI tool para generar license keys firmadas (uso interno)
|
||||
- [x] 17.8: Integrar gate checks en rutas Pro/Enterprise (reporting, integrations, etc.)
|
||||
- [x] 17.9: Frontend: License section en Settings
|
||||
- [x] 17.10: Tests: valid license passes, expired fails, wrong signature fails, feature gate blocks
|
||||
- [x] 17.11: Verificar build completo + commit: `fase(17): licensing module with RSA validation`
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user