Skip to content

Commit 553c6cd

Browse files
committed
wip: checking in
1 parent 77b9dd9 commit 553c6cd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+10941
-2832
lines changed

services/api/cmd/api/bootstrap.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010

1111
"github.com/gin-gonic/gin"
1212

13+
authseed "github.com/input-output-hk/catalyst-forge/services/api/internal/auth"
1314
rbacgorm "github.com/input-output-hk/catalyst-forge/services/api/internal/authkit/rbac/gormstore"
14-
rbacseed "github.com/input-output-hk/catalyst-forge/services/api/internal/authkit/rbacseed"
1515
akgormstore "github.com/input-output-hk/catalyst-forge/services/api/internal/authkit/store/gormstore"
1616
"github.com/input-output-hk/catalyst-forge/services/api/internal/config"
1717
argomodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/argo"
@@ -21,6 +21,7 @@ import (
2121
deploymentmodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/deployment"
2222
environmentmodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/environment"
2323
gitopsmodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/gitops"
24+
orgmodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/org"
2425
projectmodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/project"
2526
releasemodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/release"
2627
repositorymodels "github.com/input-output-hk/catalyst-forge/services/api/internal/models/repository"
@@ -94,6 +95,8 @@ func openDB(cfg config.Config, logger *slog.Logger) (*gorm.DB, error) {
9495
func runMigrations(db *gorm.DB) error {
9596
// Core API models - All new models from Phase 1-4 implementation
9697
if err := db.AutoMigrate(
98+
// Organizations
99+
&orgmodels.Organization{},
97100
// Audit models
98101
&adm.Log{},
99102

@@ -216,19 +219,27 @@ func initRBAC(ctx context.Context, db *gorm.DB, cfg config.Config, logger *slog.
216219
}
217220
return
218221
}
222+
223+
// Ensure admin role always exists independently of other seeds
224+
if err := authseed.EnsureAdminRole(ctx, store); err != nil {
225+
if logger != nil {
226+
logger.Error("RBAC admin role seeding failed", "error", err)
227+
}
228+
}
229+
219230
if !cfg.Auth.RBACSeedDefaults {
220231
if logger != nil {
221-
logger.Info("RBAC seeding skipped by config")
232+
logger.Info("RBAC default role seeding skipped by config")
222233
}
223234
return
224235
}
225236
if logger != nil {
226237
logger.Info("Seeding default RBAC roles")
227238
}
228239
// Idempotent seeding; bump versions on change
229-
if err := rbacseed.SeedDefaultRoles(ctx, store, true); err != nil {
240+
if err := authseed.SeedDefaultRoles(ctx, store, true); err != nil {
230241
if logger != nil {
231-
logger.Error("RBAC seeding failed", "error", err)
242+
logger.Error("RBAC default role seeding failed", "error", err)
232243
}
233244
}
234245
}

services/api/cmd/api/config_loader.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ func initViper(cfgFile string) {
2626
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
2727
// Ensure critical keys resolve from environment during Unmarshal
2828
_ = viper.BindEnv("auth.bootstraptoken")
29+
_ = viper.BindEnv("auth.rbacseeddefaults")
2930

3031
if err := viper.ReadInConfig(); err == nil {
3132
fmt.Println("Using config file:", viper.ConfigFileUsed())

services/api/cmd/api/flags.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ func bindRunFlags() {
119119
_ = viper.BindPFlag("auth.signingkeypem", runCmd.Flags().Lookup("auth-signing-key-pem"))
120120
_ = viper.BindPFlag("auth.signingkeykid", runCmd.Flags().Lookup("auth-signing-key-kid"))
121121
_ = viper.BindPFlag("auth.csrfsecret", runCmd.Flags().Lookup("auth-csrf-secret"))
122-
// Intentionally avoid binding bootstrap-token to Viper to let ENV/Config take precedence
122+
_ = viper.BindPFlag("auth.rbacseeddefaults", runCmd.Flags().Lookup("auth-rbac-seed-defaults"))
123123

124124
_ = viper.BindPFlag("auth.github.enabled", runCmd.Flags().Lookup("auth-github-enabled"))
125125
_ = viper.BindPFlag("auth.github.issuer", runCmd.Flags().Lookup("auth-github-issuer"))

services/api/docs/docs.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/api/docs/swagger.json

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)