Release 0.5.8 — Skills FGA, catalog API keys BFF, and RBAC migrations
Chart:
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering:0.5.8(when published) Previous release: 0.5.4
Highlights
0.5.8 continues enterprise RBAC work: skill team shares reconcile through the shared OpenFGA shareable-resource module, catalog API keys can be minted from the CAIPE UI BFF without the supervisor, and admin ReBAC migrations cover agent/skill FGA backfills. See the upgrade guide below for the catalog API key hash change before upgrading production.
What's New
Skills and catalog
- Catalog API keys in the BFF — mint, list, and revoke keys via
/api/catalog-api-keyswithout proxying to the supervisor (see breaking change if you already minted keys). - Skill FGA reconcile — per-skill team shares use the shared
reconcileShareableResourcepath; admin migrationagent_skill_openfga_reconcile_v1backfills owner and team tuples from Mongo.
RBAC
- Agent
user:*wildcard — visibility changes correctly add/remove org-wide grants on dynamic agents. - Skills team sharing — members can team-share skills from the Skill Builder with the same teams picker pattern as agents and knowledge bases.
Breaking Changes
Catalog API key hash
Stored catalog API key digests changed algorithm:
| Before | After (0.5.8) | |
|---|---|---|
| Algorithm | SHA-256 of pepper + ":" + secret | HMAC-SHA256 with CAIPE_CATALOG_API_KEY_PEPPER (or SKILLS_API_KEY_PEPPER) as the HMAC key |
| BFF | N/A or legacy proxy | ui/src/lib/catalog-api-keys.ts |
| Python | skills_middleware/api_keys_store.py | Same HMAC format as BFF |
Impact: Any row in the catalog_api_keys collection created before this change will fail verification after upgrade. Clients must receive a newly minted key.
Not affected: Key format on the wire is unchanged ({key_id}.{secret}). Pepper env vars are unchanged; only how the secret is hashed at rest changed.
Security
- Catalog key hashing uses HMAC-SHA256 and unbiased
randomIntfor secret generation (CodeQL-hardened). - Set
CAIPE_CATALOG_API_KEY_PEPPERto a long random value in production (seeui/env.example).
Known Issues
None documented for this pre-release note.
Upgrade
helm upgrade ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version 0.5.8 \
-f your-values.yaml
Upgrade Guide: 0.5.4 → 0.5.8
Overview
Most deployments can upgrade the chart first, then run admin ReBAC migrations from Admin → ReBAC migrations. If you use catalog API keys (Skills Gateway / X-Caipe-Catalog-Key), plan a short key rotation window — see Catalog API key hash below.
Catalog API key hash
Required when: the catalog_api_keys MongoDB collection contains keys minted before 0.5.8 (BFF or supervisor).
Skip when: the collection is empty or you do not use catalog API keys.
1. Confirm pepper is set consistently
Use the same pepper on the CAIPE UI (BFF) and any Python path that validates keys (supervisor / skills middleware):
# ui deployment / secret
CAIPE_CATALOG_API_KEY_PEPPER=<openssl rand -hex 32>
# skills middleware / supervisor (if applicable)
SKILLS_API_KEY_PEPPER=<same value>
Do not change the pepper during rotation unless you intend to invalidate all keys.
2. Rotate keys
For each active key:
- In the UI (or via API), revoke the old
key_id. - Mint a new key and distribute the new
{key_id}.{secret}to clients (CI, localCAIPE_CATALOG_KEY, install scripts, etc.). - Update automation that cached the old secret.
Optional (dev/test only): drop the collection and re-mint from scratch:
// MongoDB — destructive; production use revoke + mint instead
db.catalog_api_keys.deleteMany({})
3. Verify
curl -sS -H "X-Caipe-Catalog-Key: <new-key>" \
"https://<your-ui>/api/skills/catalog" | head
Expect 200 (or your normal catalog response), not 401.
Helm Values Changes
Document full values.yaml diff when the 0.5.8 chart is published. Set catalog pepper via existing UI/skills env wiring (see ui/env.example).
Data Migrations
Run pending migrations from Admin → ReBAC migrations, including when applicable:
agent_skill_openfga_reconcile_v1— backfill skill owner/team FGA tuplesagent_shared_team_grants_backfill_v1— agentshared_with_teams→ OpenFGA- Other 0.5.8 manifest entries shown as behind in the migrations UI
Upgrade Runbook
1. Rotate catalog API keys (if used)
Complete Catalog API key hash before or immediately after deploy so clients are not left with invalid keys.
2. Update chart version
helm upgrade ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version 0.5.8 \
-f your-values.yaml
3. Run ReBAC migrations
Use the admin migrations UI with the confirmation strings shown per migration.
4. Verify
- Skills list/catalog with a new catalog API key
- Team-shared skills visible to team members after FGA reconcile migration
- Dynamic agent global/team visibility behaves as expected
