Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions cmd/cmd_module.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ import (
clicompat "github.com/choysum-dev/choysum/internal/cli/compat"
clioutput "github.com/choysum-dev/choysum/internal/cli/output"
cliruntime "github.com/choysum-dev/choysum/internal/cli/runtime"
metadata "github.com/choysum-dev/choysum/internal/module/metadata"

modmeta "github.com/choysum-dev/choysum/internal/module/meta"
internalorigin "github.com/choysum-dev/choysum/internal/module/origin"
sourceregistry "github.com/choysum-dev/choysum/internal/module/origin/registry"
"github.com/choysum-dev/choysum/pkg/meta"
Expand Down Expand Up @@ -493,12 +492,12 @@ func queryModuleIndexViews(runtimeScope scope.Scope, moduleName string) ([]modul
return nil
}
db := txScope.Session().DB
if !db.Migrator().HasTable(&metadata.ModuleIndex{}) {
if !db.Migrator().HasTable(&modmeta.ModuleIndex{}) {
return nil
}
hasIndex = true

q := db.Table((metadata.ModuleIndex{}).TableName() + " AS idx")
q := db.Table((modmeta.ModuleIndex{}).TableName() + " AS idx")
if db.Migrator().HasTable(&meta.Module{}) {
q = q.
Select("idx.module_name, idx.origin_type, idx.origin_ref, idx.available, idx.version, idx.local_path, mod.status AS install_status").
Expand Down
10 changes: 5 additions & 5 deletions cmd/cmd_module_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
clicompat "github.com/choysum-dev/choysum/internal/cli/compat"
cliruntime "github.com/choysum-dev/choysum/internal/cli/runtime"
"github.com/choysum-dev/choysum/internal/config/snapshot"
metadata "github.com/choysum-dev/choysum/internal/module/metadata"
modmeta "github.com/choysum-dev/choysum/internal/module/meta"
internalorigin "github.com/choysum-dev/choysum/internal/module/origin"
sourceregistry "github.com/choysum-dev/choysum/internal/module/origin/registry"
"github.com/choysum-dev/choysum/internal/testing/scopetest"
Expand Down Expand Up @@ -575,10 +575,10 @@ func TestQueryModuleIndexViewsBranches(t *testing.T) {

t.Run("queries index without module table join", func(t *testing.T) {
runtimeScope, db := newModuleQueryTestScope(t)
if err := db.AutoMigrate(&metadata.ModuleIndex{}); err != nil {
if err := db.AutoMigrate(&modmeta.ModuleIndex{}); err != nil {
t.Fatalf("auto migrate module index: %v", err)
}
if err := db.Create(&metadata.ModuleIndex{
if err := db.Create(&modmeta.ModuleIndex{
ModuleName: "auth",
OriginType: "local",
OriginRef: "modules/auth",
Expand All @@ -604,10 +604,10 @@ func TestQueryModuleIndexViewsBranches(t *testing.T) {

t.Run("joins module install status when module table exists", func(t *testing.T) {
runtimeScope, db := newModuleQueryTestScope(t)
if err := db.AutoMigrate(&metadata.ModuleIndex{}, &meta.Module{}); err != nil {
if err := db.AutoMigrate(&modmeta.ModuleIndex{}, &meta.Module{}); err != nil {
t.Fatalf("auto migrate module tables: %v", err)
}
if err := db.Create(&metadata.ModuleIndex{
if err := db.Create(&modmeta.ModuleIndex{
ModuleName: "auth",
OriginType: "local",
OriginRef: "modules/auth",
Expand Down
24 changes: 9 additions & 15 deletions cmd/cmd_test_cmd_e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,28 @@ import (
"encoding/base64"
"encoding/json"
"fmt"

"io"
"net"

clicompat "github.com/choysum-dev/choysum/internal/cli/compat"
"github.com/choysum-dev/choysum/pkg/config"
"github.com/choysum-dev/choysum/pkg/meta"
"gorm.io/driver/sqlite"
"gorm.io/gorm"

"net/http"
"net/http/httptest"
"net/url"
"os"
"os/exec"

"path/filepath"
"sort"
"strconv"
"strings"

"syscall"
"testing"

"time"

metadata "github.com/choysum-dev/choysum/internal/module/metadata"
clicompat "github.com/choysum-dev/choysum/internal/cli/compat"
modmeta "github.com/choysum-dev/choysum/internal/module/meta"
internalorigin "github.com/choysum-dev/choysum/internal/module/origin"
"github.com/choysum-dev/choysum/pkg/config"
"github.com/choysum-dev/choysum/pkg/meta"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
)

func TestCLIErrorBlockLastOutput_InitInteractive(t *testing.T) {
Expand Down Expand Up @@ -543,10 +537,10 @@ func writeInitializedSqliteDB(t *testing.T) string {
if err != nil {
t.Fatalf("open sqlite: %v", err)
}
if err := db.AutoMigrate(&metadata.Setting{}); err != nil {
if err := db.AutoMigrate(&modmeta.Setting{}); err != nil {
t.Fatalf("migrate: %v", err)
}
if err := db.Create(&metadata.Setting{Key: "system.init.done", Value: "true"}).Error; err != nil {
if err := db.Create(&modmeta.Setting{Key: "system.init.done", Value: "true"}).Error; err != nil {
t.Fatalf("insert init marker: %v", err)
}
return path
Expand Down Expand Up @@ -1940,7 +1934,7 @@ func TestCLIRunDoesNotWriteInitArtifacts(t *testing.T) {
if err != nil {
t.Fatalf("open sqlite: %v", err)
}
var settings []metadata.Setting
var settings []modmeta.Setting
if err := db.Find(&settings).Error; err != nil {
t.Fatalf("query settings: %v", err)
}
Expand Down
17 changes: 8 additions & 9 deletions internal/bootstrap/service/coordinator.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ import (
"strings"
"time"

metadata "github.com/choysum-dev/choysum/internal/module/metadata"
leasemodel "github.com/choysum-dev/choysum/internal/state/lease/model"
modmeta "github.com/choysum-dev/choysum/internal/module/meta"

"github.com/choysum-dev/choysum/internal/logger"
modulestaging "github.com/choysum-dev/choysum/internal/module/artifact/staging"
Expand Down Expand Up @@ -335,8 +334,8 @@ func (c *coordinator) defaultAcquireInitLease(ctx context.Context) (*leaseHandle
return nil, newBootstrapError(bootstrapErrCodeGateError, "database session is not available", nil)
}

if !session.Migrator().HasTable((&leasemodel.LockLease{}).TableName()) {
if err := session.AutoMigrate(&leasemodel.LockLease{}); err != nil {
if !session.Migrator().HasTable((&modmeta.LockLease{}).TableName()) {
if err := session.AutoMigrate(&modmeta.LockLease{}); err != nil {
return nil, newBootstrapError(bootstrapErrCodeGateError, "failed to initialize the setup lock", err)
}
}
Expand Down Expand Up @@ -641,7 +640,7 @@ func (c *coordinator) defaultUpdateAdminAndMarker(ctx context.Context, input ini
now := c.now().UTC()
txRoot := c.runtimeScope.WithContext(ctx)
err = txRoot.Transactor().Required(ctx, func(txScope scope.Scope, _ scope.Transaction) error {
var modelData metadata.ModelData
var modelData modmeta.ModelData
if err := txScope.Session().Where("module = ? AND name = ?", "auth", "user_admin").Take(&modelData).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return errBootstrapAdminNameNotFound
Expand All @@ -650,9 +649,9 @@ func (c *coordinator) defaultUpdateAdminAndMarker(ctx context.Context, input ini
}

var model meta.Model
lookedUp, err := meta.LookupEffectiveModel(txScope.Session().DB, "auth", "User")
lookedUp, err := modmeta.LookupEffectiveModel(txScope.Session().DB, "auth", "User")
if err != nil {
if meta.IsEffectiveModelNotFound(err) || errors.Is(err, gorm.ErrRecordNotFound) {
if modmeta.IsEffectiveModelNotFound(err) || errors.Is(err, gorm.ErrRecordNotFound) {
return errBootstrapAdminModelNotFound
}
return err
Expand Down Expand Up @@ -737,11 +736,11 @@ func upsertBootstrapSetting(session *scope.Session, key, value string) error {
return errors.New("database session is not available")
}

var setting metadata.Setting
var setting modmeta.Setting
err := session.Unscoped().Where("key = ?", key).Take(&setting).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return session.Create(&metadata.Setting{Key: key, Value: value}).Error
return session.Create(&modmeta.Setting{Key: key, Value: value}).Error
}
return err
}
Expand Down
22 changes: 11 additions & 11 deletions internal/bootstrap/service/coordinator_admin_coverage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"testing"
"time"

metadata "github.com/choysum-dev/choysum/internal/module/metadata"
modmeta "github.com/choysum-dev/choysum/internal/module/meta"
"github.com/choysum-dev/choysum/pkg/meta"
"github.com/choysum-dev/choysum/pkg/scope"
statepkg "github.com/choysum-dev/choysum/pkg/state"
Expand Down Expand Up @@ -99,7 +99,7 @@ func TestDefaultUpdateAdminAndMarkerDBLookupFailures(t *testing.T) {
t.Run("model_data name not found", func(t *testing.T) {
c, db := newFreshnessTestCoordinator(t)
c.now = func() time.Time { return fixedNow }
if err := db.AutoMigrate(&metadata.ModelData{}); err != nil {
if err := db.AutoMigrate(&modmeta.ModelData{}); err != nil {
t.Fatalf("auto migrate model_data: %v", err)
}

Expand Down Expand Up @@ -144,10 +144,10 @@ func TestDefaultUpdateAdminAndMarkerDBLookupFailures(t *testing.T) {
t.Run("effective model not found", func(t *testing.T) {
c, db := newFreshnessTestCoordinator(t)
c.now = func() time.Time { return fixedNow }
if err := db.AutoMigrate(&metadata.ModelData{}, &meta.Model{}); err != nil {
if err := db.AutoMigrate(&modmeta.ModelData{}, &meta.Model{}); err != nil {
t.Fatalf("auto migrate: %v", err)
}
if err := db.Create(&metadata.ModelData{
if err := db.Create(&modmeta.ModelData{
Module: "auth", Name: "user_admin", Application: "auth", ModelName: "User", ModelId: "missing", ResID: "user-1",
}).Error; err != nil {
t.Fatalf("seed model_data: %v", err)
Expand All @@ -171,7 +171,7 @@ func TestDefaultUpdateAdminAndMarkerDBLookupFailures(t *testing.T) {
t.Run("effective model table missing", func(t *testing.T) {
c, db := newFreshnessTestCoordinator(t)
c.now = func() time.Time { return fixedNow }
if err := db.AutoMigrate(&metadata.ModelData{}, &meta.Model{}); err != nil {
if err := db.AutoMigrate(&modmeta.ModelData{}, &meta.Model{}); err != nil {
t.Fatalf("auto migrate: %v", err)
}
authUserModel := &meta.Model{
Expand All @@ -183,7 +183,7 @@ func TestDefaultUpdateAdminAndMarkerDBLookupFailures(t *testing.T) {
if err := db.Create(authUserModel).Error; err != nil {
t.Fatalf("seed auth.User: %v", err)
}
if err := db.Create(&metadata.ModelData{
if err := db.Create(&modmeta.ModelData{
Module: "auth", Name: "user_admin", Application: "auth", ModelName: "User", ModelId: authUserModel.Id.String, ResID: "user-1",
}).Error; err != nil {
t.Fatalf("seed model_data: %v", err)
Expand Down Expand Up @@ -211,7 +211,7 @@ func TestDefaultUpdateAdminAndMarkerSuccessUpsertsBootstrapSettings(t *testing.T
c.now = func() time.Time { return fixedNow }
wirePassword := "$CH$" + strings.Repeat("cd", 32)

if err := db.AutoMigrate(&metadata.ModelData{}, &meta.Model{}, &metadata.Setting{}); err != nil {
if err := db.AutoMigrate(&modmeta.ModelData{}, &meta.Model{}, &modmeta.Setting{}); err != nil {
t.Fatalf("auto migrate admin tables: %v", err)
}
mustExec(t, db, `CREATE TABLE auth_user (
Expand All @@ -232,12 +232,12 @@ func TestDefaultUpdateAdminAndMarkerSuccessUpsertsBootstrapSettings(t *testing.T
if err := db.Create(authUserModel).Error; err != nil {
t.Fatalf("seed auth.User model: %v", err)
}
if err := db.Create(&metadata.ModelData{
if err := db.Create(&modmeta.ModelData{
Module: "auth", Name: "user_admin", Application: "auth", ModelName: "User", ModelId: authUserModel.Id.String, ResID: resID,
}).Error; err != nil {
t.Fatalf("seed model_data: %v", err)
}
if err := db.Create(&metadata.Setting{Key: "system.init.done", Value: "false"}).Error; err != nil {
if err := db.Create(&modmeta.Setting{Key: "system.init.done", Value: "false"}).Error; err != nil {
t.Fatalf("seed existing bootstrap setting: %v", err)
}

Expand All @@ -260,7 +260,7 @@ func TestDefaultUpdateAdminAndMarkerSuccessUpsertsBootstrapSettings(t *testing.T
}

for _, key := range []string{"system.init.done", "system.init.at"} {
var setting metadata.Setting
var setting modmeta.Setting
if err := db.Where("key = ?", key).Take(&setting).Error; err != nil {
t.Fatalf("query setting %q: %v", key, err)
}
Expand All @@ -281,7 +281,7 @@ func TestUpsertBootstrapSettingBranches(t *testing.T) {
})

c, db := newFreshnessTestCoordinator(t)
if err := db.AutoMigrate(&metadata.Setting{}); err != nil {
if err := db.AutoMigrate(&modmeta.Setting{}); err != nil {
t.Fatalf("auto migrate settings: %v", err)
}
session := c.runtimeScope.Session()
Expand Down
7 changes: 3 additions & 4 deletions internal/bootstrap/service/workspace_freshness.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ package service
import (
"context"
"errors"
metadata "github.com/choysum-dev/choysum/internal/module/metadata"

modmeta "github.com/choysum-dev/choysum/internal/module/meta"
"github.com/choysum-dev/choysum/pkg/meta"
"github.com/choysum-dev/choysum/pkg/scope"
"gorm.io/gorm"
Expand Down Expand Up @@ -50,8 +49,8 @@ func (c *coordinator) defaultCheckWorkspaceFreshness(ctx context.Context) error
}
}

if session.Migrator().HasTable((&metadata.ModelData{}).TableName()) {
var modelData metadata.ModelData
if session.Migrator().HasTable((&modmeta.ModelData{}).TableName()) {
var modelData modmeta.ModelData
err := session.Select("id").Where("module = ? AND name = ?", "auth", "user_admin").Take(&modelData).Error
if err == nil {
return newBootstrapError(bootstrapErrCodeWorkspaceNotFresh, "initial setup has already been completed: administrator setup data already exists", nil)
Expand Down
12 changes: 7 additions & 5 deletions internal/module/artifact/build/backend/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
modulegenerator "github.com/choysum-dev/choysum/internal/module/artifact/generate"
module "github.com/choysum-dev/choysum/internal/module/artifact/result"
"github.com/choysum-dev/choysum/internal/module/artifact/staging"
modmeta "github.com/choysum-dev/choysum/internal/module/meta"
"github.com/choysum-dev/choysum/internal/parser"
"github.com/choysum-dev/choysum/internal/parser/backendtsparser"
"github.com/choysum-dev/choysum/pkg/jsexecutor"
Expand All @@ -30,6 +31,7 @@ import (
"github.com/evanw/esbuild/pkg/api"
xfmt "golang.org/x/exp/errors/fmt"
"gorm.io/gorm"

)

type ModuleBuilder struct {
Expand Down Expand Up @@ -319,11 +321,11 @@ func (b *ModuleBuilder) getNewExtends(model *meta.Model) (*meta.Model, error) {
if application == "" && b.module != nil {
application = strings.TrimSpace(b.module.ApplicationStr)
}
q := meta.DeclarationQuery{Name: model.Name}
q := modmeta.DeclarationQuery{Name: model.Name}
if application != "" {
q.Application = application
}
extendsDecls, err := meta.ListDeclarations(b.runtimeScope.Session().DB, q)
extendsDecls, err := modmeta.ListDeclarations(b.runtimeScope.Session().DB, q)
if err != nil {
return nil, xfmt.Errorf("error getting last models: %w", err)
}
Expand Down Expand Up @@ -881,7 +883,7 @@ func (b *ModuleBuilder) persistModuleModels(moduleID string, models []*meta.Mode
}
db := b.runtimeScope.Session()

keys, err := meta.ReplaceModuleDeclarations(db.DB, moduleID, models)
keys, err := modmeta.ReplaceModuleDeclarations(db.DB, moduleID, models)
if err != nil {
return err
}
Expand All @@ -893,13 +895,13 @@ func (b *ModuleBuilder) persistModuleModels(moduleID string, models []*meta.Mode
if app != "" {
for _, spec := range b.injectSession.Registry().Specs() {
if b.injectSession.Plan(spec.ModelName).SupersedeInject {
keys = append(keys, meta.LogicalKey{Application: app, Name: spec.ModelName})
keys = append(keys, modmeta.LogicalKey{Application: app, Name: spec.ModelName})
}
}
}
}

if err := meta.FlushEffective(db.DB, keys); err != nil {
if err := modmeta.FlushEffective(db.DB, keys); err != nil {
return xfmt.Errorf("flush effective models: %w", err)
}
return nil
Expand Down
Loading