hungtran24 2268b6a77a feat: replace tenant auth with app-scoped scoring access
Add app credentials, account-scoped idempotency and per-app terminal notifications. Consolidate the unreleased migration baseline, preserve rule descriptions as AI context, and regenerate provider contracts with regression coverage.
2026-10-02 10:56:58 +07:00

2 lines
1.3 KiB
JSON

{"version":"2.0.0","baseline":"omni-ai-platform-app-auth revision 2 (2026-09-30)","status":"provider implementation; OpenAPI generated; cross-service acceptance pending","fixtures":["fixtures/run-request.json","fixtures/run-summary.json","fixtures/run-detail.json","fixtures/webhook-delivery.json"],"idempotency":{"identity":"(authenticated app_id, account_id, request_id)","fingerprint":"SHA-256 of sorted-key compact JSON body normalized by HTTP models","new":"202 with Location","same_body":"200 existing run without scheduling another task","changed_body":"409 Conflict"},"auth":{"app":"Authorization: Bearer app_api_key; active app with lead_scoring permission; issuance/rotation via operator CLI only","aihub":"X-Tenant-VKey header on POST only; in-memory task input; AIHub sandbox protocol not yet verified","admin_login":{"method":"POST","path":"/v1/admin/login","body":{"email":"admin@example.test","password":"string"},"success":{"email":"admin@example.test","csrf_token":"opaque-token","expires_in":28800},"cookie":"ai_platform_session; HttpOnly; SameSite=Lax; Path=/; Secure in production"}},"scoring_request":{"required":["request_id","account_id","subject_ref","snapshot","scoring_config","ai_profile"],"scoring_config":{"required":["version","rules","rule_weight","ai_weight"],"weights_sum_to":1}},"run_status":["pending","running","completed","failed"]}