Skip to content

Core-era naming cleanup: SystemAuth, sf_ prefix, sf_principal_id - #56

Merged
grokify merged 5 commits into
mainfrom
feat/systemforge-004-rename
Oct 3, 2026
Merged

grokify merged 5 commits into
mainfrom
feat/systemforge-004-rename

Conversation

@grokify

@grokify grokify commented Oct 3, 2026

Copy link
Copy Markdown
Member

Summary

Finishes the CoreForge→SystemForge rename that v0.10.0's module-path move began — the Core-era names are retired. Hard cutover, no dual-name compatibility (no consumer app has shipped yet). See ADR-001.

  • coreauth → systemauth (package, binary, bootstrap user, JWKS key id, env var, observability namespace); the parallel CoreControl naming retired
  • cf_ table prefix → sf_ across all 26 identity tables, Ent regenerated
  • API-key visible prefix cf_ → sf_
  • PrincipalMixin's link field unified to sf_principal_id (was core_control_principal_id)
  • migrations/0001_rename_cf_to_sf.sql for an existing dev DB with data to keep
  • README + release notes (docs/releases/v0.11.0.md) updated

Refs: RMI-SYSTEMFORGE-069, RMI-SYSTEMFORGE-070, RMI-SYSTEMFORGE-071, RMI-SYSTEMFORGE-072, RMI-SYSTEMFORGE-073

Test plan

  • go build ./... clean
  • go test ./... passes
  • golangci-lint (shared config, uncapped): 0 new findings — same 39 pre-existing gofmt/goimports issues as baseline main, none in touched files
  • CI green on this PR
  • Tag v0.11.0 after merge

🤖 Generated with Claude Code

grokify and others added 5 commits October 2, 2026 15:48
…ntrol

Renames identity/coreauth -> identity/systemauth, cmd/coreauth ->
cmd/systemauth, and docs/coreauth -> docs/systemauth. Retires the
parallel "CoreControl" naming (contract/, multiapp/, identity/oauthclient,
identity/ent schema comments) in favor of SystemAuth throughout: the
bootstrap user is now system@systemauth.local, the JWKS key id is
systemauth-1, the config env var is SYSTEMAUTH_SECRET, and the
observability metric/span namespace is systemauth.*. Ent code regenerated
to pick up the schema comment change. No behavior change.

BREAKING CHANGE: the identity/systemauth import path, cmd/systemauth
binary name, and all CoreControl-named types (e.g. CoreControlConfig ->
SystemAuthConfig) replace their coreauth/CoreControl predecessors.

Refs: RMI-SYSTEMFORGE-069
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Renames all 26 identity tables from cf_* to sf_* via the entsql.Annotation
Table names in identity/ent/schema/*.go, regenerates Ent, and updates the
hand-written rls.SystemForgeTables list and comments to match. Adds
migrations/0001_rename_cf_to_sf.sql for an existing dev database with
cf_ data to keep; a fresh database needs no migration, just
'systemauth migrate'.

BREAKING CHANGE: every cf_* table is now sf_*. No production data exists
at the old prefix (hard cutover, per ADR-001).

Refs: RMI-SYSTEMFORGE-070
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Renames identity/apikey.DefaultPrefix ("cf" -> "sf", producing
sf_live_/sf_test_ keys) and the legacy identity/credential.APIKeyPrefix
("cf_" -> "sf_"), plus the matching Ent schema/mixin comments.

BREAKING CHANGE: newly issued API keys carry the sf_ prefix instead of
cf_. No production keys exist at the old prefix (hard cutover, per
ADR-001); any dev-issued cf_-prefixed keys stop matching the new prefix
check and must be reissued.

Refs: RMI-SYSTEMFORGE-071
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Renames PrincipalMixin's core_control_principal_id field (and its index)
to sf_principal_id. This mixin is published for downstream consumers to
embed in their own Principal schema, not used by systemforge's own
schema, so this is the canonical name change every consumer adopts,
replacing both core_control_principal_id (dashforge, academyos) and the
divergent core_auth_principal_id (proofminds-web).

BREAKING CHANGE: consumers embedding PrincipalMixin must rename their
own sf_principal_id column and regenerate Ent (RMI-DASHFORGE-022,
RMI-ACADEMYOS-002, RMI-PROOFMINDSWEB-005).

Refs: RMI-SYSTEMFORGE-072
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds docs/releases/v0.11.0.md, a top-of-README callout matching the
v0.10.0 precedent, the CHANGELOG.json entry (regenerated CHANGELOG.md),
and the mkdocs nav entry. Also fixes README's Database Tables and
Migration Strategy sections, which still listed cf_* after the RMI-070
rename (that commit's scope was the Ent schema annotations and
rls/migrate.go, not prose documentation).

Refs: RMI-SYSTEMFORGE-073
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 126 files, which is 26 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 8745bb70-9b02-499d-b94e-5365ebe4c199
📥 Commits

Reviewing files that changed from the base of the PR and between 6c04811 and f47043c.

📒 Files selected for processing (126)
  • .gitignore
  • CHANGELOG.json
  • CHANGELOG.md
  • README.md
  • TASKS.md
  • cmd/systemauth/config.example.yaml
  • cmd/systemauth/main.go
  • contract/api.go
  • contract/config.go
  • contract/context.go
  • contract/middleware.go
  • contract/operations_identity.go
  • contract/operations_policy.go
  • contract/types.go
  • coreapi/coreapi.go
  • docs/design/FEAT_OBSERVABILITY_TRD.md
  • docs/design/productgraph/PLAN.md
  • docs/identity/oauthclient.md
  • docs/identity/overview.md
  • docs/multiapp/overview.md
  • docs/observability/overview.md
  • docs/platform/authority-model.md
  • docs/platform/product-contract.md
  • docs/platform/vision.md
  • docs/releases/v0.11.0.md
  • docs/systemauth/overview.md
  • docs/systemauth/providers.md
  • identity/apikey/service.go
  • identity/apikey/service_test.go
  • identity/credential/service.go
  • identity/ent/agent/agent.go
  • identity/ent/apikey.go
  • identity/ent/apikey/apikey.go
  • identity/ent/application/application.go
  • identity/ent/credential/credential.go
  • identity/ent/human/human.go
  • identity/ent/internal/schema.go
  • identity/ent/invite/invite.go
  • identity/ent/license/license.go
  • identity/ent/listing/listing.go
  • identity/ent/membership/membership.go
  • identity/ent/migrate/schema.go
  • identity/ent/mixin/api_key.go
  • identity/ent/mixin/identity.go
  • identity/ent/oauthaccount/oauthaccount.go
  • identity/ent/oauthapp/oauthapp.go
  • identity/ent/oauthappsecret/oauthappsecret.go
  • identity/ent/oauthauthcode/oauthauthcode.go
  • identity/ent/oauthconsent/oauthconsent.go
  • identity/ent/oauthtoken/oauthtoken.go
  • identity/ent/organization/organization.go
  • identity/ent/principal/principal.go
  • identity/ent/principalmembership/principalmembership.go
  • identity/ent/principaltoken/principaltoken.go
  • identity/ent/refreshtoken/refreshtoken.go
  • identity/ent/runtime/runtime.go
  • identity/ent/schema/agent.go
  • identity/ent/schema/api_key.go
  • identity/ent/schema/application.go
  • identity/ent/schema/credential.go
  • identity/ent/schema/human.go
  • identity/ent/schema/invite.go
  • identity/ent/schema/license.go
  • identity/ent/schema/listing.go
  • identity/ent/schema/membership.go
  • identity/ent/schema/oauth_account.go
  • identity/ent/schema/oauth_app.go
  • identity/ent/schema/oauth_app_secret.go
  • identity/ent/schema/oauth_auth_code.go
  • identity/ent/schema/oauth_consent.go
  • identity/ent/schema/oauth_token.go
  • identity/ent/schema/organization.go
  • identity/ent/schema/principal.go
  • identity/ent/schema/principal_membership.go
  • identity/ent/schema/principal_token.go
  • identity/ent/schema/refresh_token.go
  • identity/ent/schema/seat_assignment.go
  • identity/ent/schema/service_account.go
  • identity/ent/schema/service_account_key_pair.go
  • identity/ent/schema/service_principal.go
  • identity/ent/schema/subscription.go
  • identity/ent/schema/user.go
  • identity/ent/seatassignment/seatassignment.go
  • identity/ent/serviceaccount/serviceaccount.go
  • identity/ent/serviceaccountkeypair/serviceaccountkeypair.go
  • identity/ent/serviceprincipal/serviceprincipal.go
  • identity/ent/subscription/subscription.go
  • identity/ent/user.go
  • identity/ent/user/user.go
  • identity/oauthclient/client.go
  • identity/systemauth/client.go
  • identity/systemauth/config.go
  • identity/systemauth/config_loader.go
  • identity/systemauth/errors.go
  • identity/systemauth/examples/config.json
  • identity/systemauth/examples/config.yaml
  • identity/systemauth/federation.go
  • identity/systemauth/federation_handlers.go
  • identity/systemauth/handler_discovery.go
  • identity/systemauth/handler_fosite.go
  • identity/systemauth/provider.go
  • identity/systemauth/provider_auth.go
  • identity/systemauth/provider_identity.go
  • identity/systemauth/provider_oauth.go
  • identity/systemauth/provider_test.go
  • identity/systemauth/providers.go
  • identity/systemauth/schema/config.schema.json
  • identity/systemauth/schema/generate.go
  • identity/systemauth/schema/schema.go
  • identity/systemauth/server.go
  • identity/systemauth/session.go
  • identity/systemauth/storage.go
  • identity/systemauth/storage_ent.go
  • identity/systemauth/storage_ent_test.go
  • identity/systemauth/storage_memory.go
  • identity/systemauth/systemauth_test.go
  • identity/systemauth/types_oauth.go
  • migrations/0001_rename_cf_to_sf.sql
  • mkdocs.yml
  • multiapp/README.md
  • multiapp/app.go
  • multiapp/integration.go
  • multiapp/server.go
  • observability/metrics.go
  • observability/observability.go
  • rls/migrate.go

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@grokify
grokify merged commit de761bd into main Oct 3, 2026
6 of 7 checks passed
@grokify
grokify deleted the feat/systemforge-004-rename branch October 4, 2026 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant