@highstate/backend 0.9.18 → 0.9.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-5WVU2AK4.js +1535 -0
- package/dist/chunk-5WVU2AK4.js.map +1 -0
- package/dist/{chunk-OU5OQBLB.js → chunk-I7BWSAN6.js} +3 -28
- package/dist/{chunk-OU5OQBLB.js.map → chunk-I7BWSAN6.js.map} +1 -1
- package/dist/chunk-VB4YL327.js +139 -0
- package/dist/chunk-VB4YL327.js.map +1 -0
- package/dist/database/local/prisma.config.js +26 -0
- package/dist/database/local/prisma.config.js.map +1 -0
- package/dist/highstate.manifest.json +2 -1
- package/dist/index.js +7587 -7291
- package/dist/index.js.map +1 -1
- package/dist/library/package-resolution-worker.js +1 -1
- package/dist/library/package-resolution-worker.js.map +1 -1
- package/dist/library/worker/main.js +35 -29
- package/dist/library/worker/main.js.map +1 -1
- package/dist/shared/index.js +2 -2
- package/package.json +18 -9
- package/prisma/backend/_schema/layout.prisma +7 -0
- package/prisma/backend/_schema/library.prisma +17 -0
- package/prisma/backend/_schema/project.prisma +101 -0
- package/prisma/backend/_schema/pulumi.prisma +17 -0
- package/prisma/backend/postgresql/main.prisma +17 -0
- package/prisma/backend/sqlite/main.prisma +17 -0
- package/prisma/backend/sqlite/migrations/20250817070609_initiial/migration.sql +34 -0
- package/prisma/backend/sqlite/migrations/20250817104948_add_fields/migration.sql +59 -0
- package/prisma/backend/sqlite/migrations/20250818082732_add_models/migration.sql +41 -0
- package/prisma/backend/sqlite/migrations/20250818083106_a/migration.sql +19 -0
- package/prisma/backend/sqlite/migrations/20250818101945_hi/migration.sql +1 -0
- package/prisma/backend/sqlite/migrations/20250819082315_a/migration.sql +5 -0
- package/prisma/backend/sqlite/migrations/migration_lock.toml +3 -0
- package/prisma/project/api-key.prisma +27 -0
- package/prisma/project/artifact.prisma +52 -0
- package/prisma/project/custom-status.prisma +46 -0
- package/prisma/project/evaluation.prisma +35 -0
- package/prisma/project/instance.prisma +160 -0
- package/prisma/project/layout.prisma +23 -0
- package/prisma/project/lock.prisma +18 -0
- package/prisma/project/main.prisma +17 -0
- package/prisma/project/migrations/20250816081310_initial/migration.sql +300 -0
- package/prisma/project/migrations/20250816082523_test/migration.sql +72 -0
- package/prisma/project/migrations/20250818065643_update/migration.sql +42 -0
- package/prisma/project/migrations/20250818070758_a/migration.sql +8 -0
- package/prisma/project/migrations/20250818070913_a/migration.sql +8 -0
- package/prisma/project/migrations/20250818082720_add_motels/migration.sql +11 -0
- package/prisma/project/migrations/20250818112523_hello/migration.sql +35 -0
- package/prisma/project/migrations/20250819082305_a/migration.sql +14 -0
- package/prisma/project/migrations/20250819165004_add_missing_fields/migration.sql +216 -0
- package/prisma/project/migrations/20250819171309_a/migration.sql +22 -0
- package/prisma/project/migrations/20250820113949_a/migration.sql +66 -0
- package/prisma/project/migrations/20250820144256_b/migration.sql +31 -0
- package/prisma/project/migrations/20250820145547_a/migration.sql +24 -0
- package/prisma/project/migrations/20250820182517_b/migration.sql +2 -0
- package/prisma/project/migrations/20250821172324_a/migration.sql +2 -0
- package/prisma/project/migrations/20250822081339_a/migration.sql +219 -0
- package/prisma/project/migrations/20250822083742_b/migration.sql +1 -0
- package/prisma/project/migrations/20250822105134_boom/migration.sql +1 -0
- package/prisma/project/migrations/20250822141028_b/migration.sql +1 -0
- package/prisma/project/migrations/20250822142342_b/migration.sql +16 -0
- package/prisma/project/migrations/20250824072720_a/migration.sql +1 -0
- package/prisma/project/migrations/20250824093656_b/migration.sql +21 -0
- package/prisma/project/migrations/20250825082518_a/migration.sql +1 -0
- package/prisma/project/migrations/20250825085343_b/migration.sql +1 -0
- package/prisma/project/migrations/20250825091312_a/migration.sql +1 -0
- package/prisma/project/migrations/20250903095431_hi/migration.sql +44 -0
- package/prisma/project/migrations/20250903174255_a/migration.sql +24 -0
- package/prisma/project/migrations/20250908095205_hi/migration.sql +18 -0
- package/prisma/project/migrations/20250909155857_hi/migration.sql +15 -0
- package/prisma/project/migrations/migration_lock.toml +3 -0
- package/prisma/project/model.prisma +37 -0
- package/prisma/project/operation.prisma +148 -0
- package/prisma/project/page.prisma +41 -0
- package/prisma/project/secret.prisma +42 -0
- package/prisma/project/service-account.prisma +36 -0
- package/prisma/project/terminal.prisma +90 -0
- package/prisma/project/trigger.prisma +31 -0
- package/prisma/project/unlock-method.prisma +32 -0
- package/prisma/project/worker.prisma +138 -0
- package/src/artifact/abstractions.ts +13 -13
- package/src/artifact/encryption.ts +30 -54
- package/src/artifact/factory.ts +6 -9
- package/src/artifact/local.ts +33 -46
- package/src/business/api-key.ts +24 -36
- package/src/business/artifact.test.ts +978 -0
- package/src/business/artifact.ts +136 -216
- package/src/business/evaluation.ts +328 -0
- package/src/business/index.ts +5 -2
- package/src/business/instance-lock.test.ts +1060 -0
- package/src/business/instance-lock.ts +387 -78
- package/src/business/instance-state.test.ts +735 -0
- package/src/business/instance-state.ts +582 -337
- package/src/business/operation.test.ts +439 -0
- package/src/business/operation.ts +174 -208
- package/src/business/project-model.ts +258 -0
- package/src/business/project-unlock.ts +168 -126
- package/src/business/project.ts +287 -179
- package/src/business/secret.test.ts +465 -130
- package/src/business/secret.ts +186 -217
- package/src/business/settings.test.ts +695 -0
- package/src/business/settings.ts +855 -0
- package/src/business/terminal-session.ts +90 -0
- package/src/business/unit-extra.test.ts +539 -0
- package/src/business/unit-extra.ts +160 -0
- package/src/business/worker.test.ts +356 -579
- package/src/business/worker.ts +238 -339
- package/src/common/codebase.ts +65 -0
- package/src/common/index.ts +3 -5
- package/src/common/logger.ts +5 -0
- package/src/common/utils.ts +4 -3
- package/src/config.ts +10 -11
- package/src/database/_generated/backend/postgresql/client.ts +72 -0
- package/src/database/_generated/backend/postgresql/commonInputTypes.ts +350 -0
- package/src/database/_generated/backend/postgresql/enums.ts +13 -0
- package/src/database/_generated/backend/postgresql/internal/class.ts +320 -0
- package/src/database/_generated/backend/postgresql/internal/prismaNamespace.ts +1238 -0
- package/src/database/_generated/backend/postgresql/models/Library.ts +1263 -0
- package/src/database/_generated/backend/postgresql/models/Project.ts +2175 -0
- package/src/database/_generated/backend/postgresql/models/ProjectModelStorage.ts +1263 -0
- package/src/database/_generated/backend/postgresql/models/ProjectSpace.ts +1602 -0
- package/src/database/_generated/backend/postgresql/models/PulumiBackend.ts +1263 -0
- package/src/database/_generated/backend/postgresql/models/UserWorkspaseLayout.ts +1065 -0
- package/src/database/_generated/backend/postgresql/models.ts +16 -0
- package/src/database/_generated/backend/postgresql/pjtg.ts +182 -0
- package/src/database/_generated/backend/sqlite/client.ts +72 -0
- package/src/database/_generated/backend/sqlite/commonInputTypes.ts +331 -0
- package/src/database/_generated/backend/sqlite/enums.ts +13 -0
- package/src/database/_generated/backend/sqlite/internal/class.ts +318 -0
- package/src/database/_generated/backend/sqlite/internal/prismaNamespace.ts +1207 -0
- package/src/database/_generated/backend/sqlite/models/Library.ts +1261 -0
- package/src/database/_generated/backend/sqlite/models/Project.ts +2169 -0
- package/src/database/_generated/backend/sqlite/models/ProjectModelStorage.ts +1261 -0
- package/src/database/_generated/backend/sqlite/models/ProjectSpace.ts +1599 -0
- package/src/database/_generated/backend/sqlite/models/PulumiBackend.ts +1261 -0
- package/src/database/_generated/backend/sqlite/models/UserWorkspaseLayout.ts +1063 -0
- package/src/database/_generated/backend/sqlite/models.ts +16 -0
- package/src/database/_generated/backend/sqlite/pjtg.ts +182 -0
- package/src/database/_generated/project/client.ts +204 -0
- package/src/database/_generated/project/commonInputTypes.ts +827 -0
- package/src/database/_generated/project/enums.ts +104 -0
- package/src/database/_generated/project/internal/class.ts +479 -0
- package/src/database/_generated/project/internal/prismaNamespace.ts +2974 -0
- package/src/database/_generated/project/models/ApiKey.ts +1506 -0
- package/src/database/_generated/project/models/Artifact.ts +2051 -0
- package/src/database/_generated/project/models/HubModel.ts +1125 -0
- package/src/database/_generated/project/models/InstanceCustomStatus.ts +1713 -0
- package/src/database/_generated/project/models/InstanceEvaluationState.ts +1312 -0
- package/src/database/_generated/project/models/InstanceLock.ts +1268 -0
- package/src/database/_generated/project/models/InstanceModel.ts +1125 -0
- package/src/database/_generated/project/models/InstanceOperationState.ts +1707 -0
- package/src/database/_generated/project/models/InstanceState.ts +4613 -0
- package/src/database/_generated/project/models/Operation.ts +1647 -0
- package/src/database/_generated/project/models/OperationLog.ts +1455 -0
- package/src/database/_generated/project/models/Page.ts +1838 -0
- package/src/database/_generated/project/models/Secret.ts +1692 -0
- package/src/database/_generated/project/models/ServiceAccount.ts +2165 -0
- package/src/database/_generated/project/models/Terminal.ts +2038 -0
- package/src/database/_generated/project/models/TerminalSession.ts +1454 -0
- package/src/database/_generated/project/models/TerminalSessionLog.ts +1280 -0
- package/src/database/_generated/project/models/Trigger.ts +1430 -0
- package/src/database/_generated/project/models/UnlockMethod.ts +1220 -0
- package/src/database/_generated/project/models/UserCompositeViewport.ts +1280 -0
- package/src/database/_generated/project/models/UserProjectViewport.ts +1059 -0
- package/src/database/_generated/project/models/Worker.ts +1459 -0
- package/src/database/_generated/project/models/WorkerUnitRegistration.ts +1524 -0
- package/src/database/_generated/project/models/WorkerVersion.ts +1974 -0
- package/src/database/_generated/project/models/WorkerVersionLog.ts +1318 -0
- package/src/database/_generated/project/models.ts +35 -0
- package/src/database/_generated/project/pjtg.ts +182 -0
- package/src/database/abstractions.ts +19 -0
- package/src/database/factory.ts +37 -0
- package/src/database/index.ts +6 -0
- package/src/database/local/backend.ts +134 -0
- package/src/database/local/index.ts +3 -0
- package/src/database/local/meta.ts +46 -0
- package/src/database/local/prisma.config.ts +25 -0
- package/src/database/local/project.ts +39 -0
- package/src/database/manager.ts +181 -0
- package/src/database/migrate.ts +35 -0
- package/src/database/prisma.ts +56 -0
- package/src/database/well-known.ts +38 -0
- package/src/index.ts +4 -4
- package/src/library/abstractions.ts +3 -5
- package/src/library/factory.ts +1 -1
- package/src/library/local.ts +81 -26
- package/src/library/package-resolution-worker.ts +1 -1
- package/src/library/worker/evaluator.ts +40 -23
- package/src/library/worker/loader.lite.ts +1 -1
- package/src/library/worker/main.ts +3 -10
- package/src/library/worker/protocol.ts +0 -1
- package/src/lock/index.ts +0 -1
- package/src/lock/manager.ts +0 -10
- package/src/orchestrator/manager.ts +190 -104
- package/src/orchestrator/operation-context.ts +357 -0
- package/src/orchestrator/operation-plan.destroy.test.md +357 -0
- package/src/orchestrator/operation-plan.destroy.test.ts +775 -0
- package/src/orchestrator/operation-plan.fixtures.ts +213 -0
- package/src/orchestrator/operation-plan.md +198 -0
- package/src/orchestrator/operation-plan.refresh.test.md +199 -0
- package/src/orchestrator/operation-plan.refresh.test.ts +367 -0
- package/src/orchestrator/operation-plan.ts +709 -0
- package/src/orchestrator/operation-plan.update.test.md +485 -0
- package/src/orchestrator/operation-plan.update.test.ts +1066 -0
- package/src/orchestrator/operation-workset.ts +233 -578
- package/src/orchestrator/operation.ts +435 -948
- package/src/orchestrator/plan-test-builder.ts +267 -0
- package/src/project-model/abstractions.ts +118 -0
- package/src/project-model/backends/codebase.ts +365 -0
- package/src/project-model/backends/database.ts +440 -0
- package/src/project-model/errors.ts +81 -0
- package/src/project-model/factory.ts +24 -0
- package/src/project-model/index.ts +4 -0
- package/src/project-model/utils.test.ts +544 -0
- package/src/project-model/utils.ts +242 -0
- package/src/pubsub/abstractions.ts +10 -1
- package/src/pubsub/factory.ts +4 -4
- package/src/pubsub/index.ts +1 -0
- package/src/pubsub/manager.ts +29 -13
- package/src/pubsub/memory.ts +31 -0
- package/src/runner/abstractions.ts +33 -41
- package/src/runner/artifact-env.ts +19 -8
- package/src/runner/factory.ts +6 -6
- package/src/runner/force-abort.ts +3 -6
- package/src/runner/local.ts +64 -67
- package/src/runner/pulumi.ts +23 -63
- package/src/services.ts +181 -123
- package/src/shared/models/backend/index.ts +3 -1
- package/src/shared/models/backend/library.ts +9 -1
- package/src/shared/models/backend/project.ts +43 -42
- package/src/shared/models/backend/pulumi.ts +14 -0
- package/src/shared/models/backend/unlock-method.ts +1 -1
- package/src/shared/models/backend/well-known.ts +58 -0
- package/src/shared/models/base.ts +40 -26
- package/src/shared/models/errors.ts +82 -1
- package/src/shared/models/index.ts +3 -2
- package/src/shared/models/prisma.ts +36 -0
- package/src/shared/models/project/api-key.ts +37 -59
- package/src/shared/models/project/artifact.ts +16 -76
- package/src/shared/models/project/custom-status.ts +12 -0
- package/src/shared/models/project/index.ts +8 -7
- package/src/shared/models/project/lock.ts +10 -78
- package/src/shared/models/project/model.ts +19 -1
- package/src/shared/models/project/operation.ts +222 -99
- package/src/shared/models/project/page.ts +37 -48
- package/src/shared/models/project/secret.ts +29 -89
- package/src/shared/models/project/service-account.ts +12 -17
- package/src/shared/models/project/state.ts +100 -407
- package/src/shared/models/project/terminal.ts +75 -88
- package/src/shared/models/project/trigger.ts +13 -49
- package/src/shared/models/project/unlock-method.ts +20 -26
- package/src/shared/models/project/worker.ts +89 -90
- package/src/shared/resolvers/graph-resolver.ts +21 -0
- package/src/shared/resolvers/index.ts +1 -1
- package/src/shared/resolvers/input-hash.ts +24 -14
- package/src/shared/resolvers/input.ts +1 -1
- package/src/shared/resolvers/registry.ts +5 -4
- package/src/shared/resolvers/state.ts +12 -1
- package/src/shared/resolvers/validation.ts +7 -3
- package/src/shared/utils/index.ts +1 -2
- package/src/shared/utils/promise-tracker.ts +30 -3
- package/src/terminal/abstractions.ts +1 -1
- package/src/terminal/docker.ts +3 -3
- package/src/terminal/manager.ts +102 -118
- package/src/test-utils/database.ts +119 -0
- package/src/test-utils/index.ts +2 -0
- package/src/test-utils/services.ts +134 -0
- package/src/unlock/abstractions.ts +5 -23
- package/src/unlock/memory.ts +9 -14
- package/src/worker/abstractions.ts +7 -4
- package/src/worker/docker.ts +14 -19
- package/src/worker/manager.ts +366 -97
- package/dist/chunk-NAAIDR4U.js +0 -8499
- package/dist/chunk-NAAIDR4U.js.map +0 -1
- package/dist/chunk-Y7DXREVO.js +0 -1745
- package/dist/chunk-Y7DXREVO.js.map +0 -1
- package/dist/magic-string.es-5ABAC4JN.js +0 -1292
- package/dist/magic-string.es-5ABAC4JN.js.map +0 -1
- package/src/business/__traces__/secret/update-instance-secrets/create-and-delete-secrets-simultaneously.md +0 -356
- package/src/business/__traces__/secret/update-instance-secrets/create-new-secrets-for-instance.md +0 -274
- package/src/business/__traces__/secret/update-instance-secrets/delete-existing-secrets.md +0 -223
- package/src/business/__traces__/secret/update-instance-secrets/no-op-when-no-changes.md +0 -147
- package/src/business/__traces__/secret/update-instance-secrets/update-existing-secrets.md +0 -280
- package/src/business/__traces__/worker/update-unit-registrations/add-new-unit-registration-when-other-exists.md +0 -360
- package/src/business/__traces__/worker/update-unit-registrations/add-new-unit-registration.md +0 -215
- package/src/business/__traces__/worker/update-unit-registrations/create-multiple-workers-with-different-identities.md +0 -427
- package/src/business/__traces__/worker/update-unit-registrations/handle-nonexistent-registration-id-gracefully.md +0 -217
- package/src/business/__traces__/worker/update-unit-registrations/no-op-when-no-changes.md +0 -132
- package/src/business/__traces__/worker/update-unit-registrations/recreate-worker-when-image-changes.md +0 -454
- package/src/business/__traces__/worker/update-unit-registrations/recreate-worker-when-image-version-changes.md +0 -426
- package/src/business/__traces__/worker/update-unit-registrations/recreate-worker-with-same-identity-reuses-service-account.md +0 -372
- package/src/business/__traces__/worker/update-unit-registrations/remove-one-of-multiple-unit-registrations.md +0 -383
- package/src/business/__traces__/worker/update-unit-registrations/remove-unit-registration.md +0 -245
- package/src/business/__traces__/worker/update-unit-registrations/update-existing-unit-registration-when-params-change.md +0 -174
- package/src/business/__traces__/worker/update-unit-registrations/update-params-and-image-simultaneously.md +0 -432
- package/src/business/__traces__/worker/update-unit-registrations/worker-with-multiple-registrations-not-deleted-when-one-removed.md +0 -220
- package/src/business/backend-unlock.ts +0 -10
- package/src/common/clock.ts +0 -18
- package/src/common/performance.ts +0 -44
- package/src/common/random.ts +0 -68
- package/src/common/test/index.ts +0 -2
- package/src/common/test/render.ts +0 -98
- package/src/common/test/tracer.ts +0 -359
- package/src/hotstate/abstractions.ts +0 -48
- package/src/hotstate/factory.ts +0 -17
- package/src/hotstate/index.ts +0 -3
- package/src/hotstate/manager.ts +0 -192
- package/src/hotstate/memory.ts +0 -100
- package/src/hotstate/validation.ts +0 -100
- package/src/lock/test.ts +0 -108
- package/src/project/abstractions.ts +0 -78
- package/src/project/evaluation.ts +0 -248
- package/src/project/factory.ts +0 -11
- package/src/project/index.ts +0 -3
- package/src/project/local.ts +0 -417
- package/src/pubsub/local.ts +0 -36
- package/src/pubsub/validation.ts +0 -33
- package/src/shared/utils/args.ts +0 -25
- package/src/state/abstractions.ts +0 -289
- package/src/state/encryption.ts +0 -98
- package/src/state/factory.ts +0 -20
- package/src/state/index.ts +0 -7
- package/src/state/local/backend.ts +0 -106
- package/src/state/local/collection.ts +0 -361
- package/src/state/local/index.ts +0 -2
- package/src/state/manager.ts +0 -890
- package/src/state/memory/backend.ts +0 -70
- package/src/state/memory/collection.ts +0 -270
- package/src/state/memory/index.ts +0 -2
- package/src/state/repository/index.ts +0 -2
- package/src/state/repository/repository.index.ts +0 -193
- package/src/state/repository/repository.ts +0 -507
- package/src/state/test.ts +0 -457
- /package/src/{state → database/local}/keyring.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/library/package-resolution-worker.ts"],"names":[],"mappings":";;;;;;;AA8BA,IAAM,EAAE,YAAA,EAAc,QAAA,EAAS,GAAI,UAAA;AAEnC,IAAM,MAAA,GAAS,KAAK,EAAE,IAAA,EAAM,4BAA4B,KAAA,EAAO,QAAA,IAAY,UAAU,CAAA;AAErF,IAAM,UAA2B,EAAC;AAElC,KAAA,MAAW,eAAe,YAAA,EAAc;AACtC,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,WAAA,EAAa,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AACzD,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,SAAA,EAAY,WAAW,CAAA,WAAA,CAAa,CAAA;AAAA,IACtD;AAEA,IAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,MACX,IAAA,EAAM,SAAA;AAAA,MACN,WAAA;AAAA,MACA,eAAA,EAAiB,MAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAC;AAAA,KAC9C,CAAA;AAAA,EACH,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,KAAA,CAAM,EAAE,KAAA,EAAM,EAAG,kCAAkC,WAAW,CAAA;AAErE,IAAA,IAAI,iBAAiB,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,EAAG;AACjE,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,WAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,OAAA;AAAA,QACN,WAAA;AAAA,QACA,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,OAC7D,CAAA;AAAA,IACH;AAAA,EACF;AACF;AAEA,UAAA,
|
|
1
|
+
{"version":3,"sources":["../../src/library/package-resolution-worker.ts"],"names":[],"mappings":";;;;;;;AA8BA,IAAM,EAAE,YAAA,EAAc,QAAA,EAAS,GAAI,UAAA;AAEnC,IAAM,MAAA,GAAS,KAAK,EAAE,IAAA,EAAM,4BAA4B,KAAA,EAAO,QAAA,IAAY,UAAU,CAAA;AAErF,IAAM,UAA2B,EAAC;AAElC,KAAA,MAAW,eAAe,YAAA,EAAc;AACtC,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,WAAA,EAAa,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AACzD,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,SAAA,EAAY,WAAW,CAAA,WAAA,CAAa,CAAA;AAAA,IACtD;AAEA,IAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,MACX,IAAA,EAAM,SAAA;AAAA,MACN,WAAA;AAAA,MACA,eAAA,EAAiB,MAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAC;AAAA,KAC9C,CAAA;AAAA,EACH,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,KAAA,CAAM,EAAE,KAAA,EAAM,EAAG,kCAAkC,WAAW,CAAA;AAErE,IAAA,IAAI,iBAAiB,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,EAAG;AACjE,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,WAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,OAAA;AAAA,QACN,WAAA;AAAA,QACA,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,OAC7D,CAAA;AAAA,IACH;AAAA,EACF;AACF;AAEA,UAAA,EAAY,WAAA,CAAY;AAAA,EACtB,IAAA,EAAM,QAAA;AAAA,EACN;AACF,CAAC,CAAA","file":"package-resolution-worker.js","sourcesContent":["import { parentPort, workerData } from \"node:worker_threads\"\nimport { dirname } from \"node:path\"\nimport { findPackageJSON } from \"node:module\"\nimport { realpath } from \"node:fs/promises\"\nimport pino, { type Level } from \"pino\"\n\nexport type PackageResolutionWorkerData = {\n packageNames: string[]\n logLevel?: Level\n}\n\nexport type PackageResult = { packageName: string } & (\n | {\n type: \"success\"\n packageRootPath: string\n }\n | {\n type: \"not-found\"\n }\n | {\n type: \"error\"\n error: string\n }\n)\n\nexport type PackageResolutionResponse = {\n type: \"result\"\n results: PackageResult[]\n}\n\nconst { packageNames, logLevel } = workerData as PackageResolutionWorkerData\n\nconst logger = pino({ name: \"source-resolution-worker\", level: logLevel ?? \"silent\" })\n\nconst results: PackageResult[] = []\n\nfor (const packageName of packageNames) {\n try {\n const path = findPackageJSON(packageName, import.meta.url)\n if (!path) {\n throw new Error(`Package \"${packageName}\" not found`)\n }\n\n results.push({\n type: \"success\",\n packageName,\n packageRootPath: await realpath(dirname(path)),\n })\n } catch (error) {\n logger.error({ error }, `failed to resolve package \"%s\"`, packageName)\n\n if (error instanceof Error && error.message.includes(\"not found\")) {\n results.push({\n type: \"not-found\",\n packageName,\n })\n } else {\n results.push({\n type: \"error\",\n packageName,\n error: error instanceof Error ? error.message : String(error),\n })\n }\n }\n}\n\nparentPort?.postMessage({\n type: \"result\",\n results,\n})\n"]}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { errorToString } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
import { errorToString } from '../../chunk-VB4YL327.js';
|
|
2
|
+
import '../../chunk-I7BWSAN6.js';
|
|
3
3
|
import { workerData, parentPort } from 'node:worker_threads';
|
|
4
4
|
import { pino } from 'pino';
|
|
5
5
|
import { InstanceNameConflictError, getRuntimeInstances, isComponent } from '@highstate/contract';
|
|
6
6
|
|
|
7
|
-
function evaluateProject(logger2, components, allInstances, resolvedInputs
|
|
8
|
-
const errors = {};
|
|
7
|
+
function evaluateProject(logger2, components, allInstances, resolvedInputs) {
|
|
9
8
|
const allInstancesMap = new Map(allInstances.map((instance) => [instance.id, instance]));
|
|
9
|
+
const instanceErrors = {};
|
|
10
|
+
const topLevelErrors = {};
|
|
10
11
|
const instanceOutputs = /* @__PURE__ */ new Map();
|
|
11
|
-
for (const
|
|
12
|
+
for (const instance of allInstances) {
|
|
12
13
|
try {
|
|
13
|
-
|
|
14
|
-
evaluateInstance(instanceId);
|
|
14
|
+
evaluateInstance(instance.id);
|
|
15
15
|
} catch (error) {
|
|
16
|
-
errors[instanceId] = errorToString(error);
|
|
17
16
|
if (error instanceof InstanceNameConflictError) {
|
|
18
17
|
return {
|
|
19
18
|
success: false,
|
|
@@ -24,25 +23,38 @@ function evaluateProject(logger2, components, allInstances, resolvedInputs, inst
|
|
|
24
23
|
}
|
|
25
24
|
return {
|
|
26
25
|
success: true,
|
|
27
|
-
virtualInstances: getRuntimeInstances().map((instance) => instance.instance).filter((instance) =>
|
|
28
|
-
topLevelErrors
|
|
26
|
+
virtualInstances: getRuntimeInstances().map((instance) => instance.instance).filter((instance) => instance.kind === "composite" || !allInstancesMap.has(instance.id)),
|
|
27
|
+
topLevelErrors
|
|
29
28
|
};
|
|
30
29
|
function evaluateInstance(instanceId) {
|
|
31
30
|
let outputs = instanceOutputs.get(instanceId);
|
|
32
|
-
if (
|
|
33
|
-
outputs
|
|
34
|
-
|
|
31
|
+
if (outputs) {
|
|
32
|
+
return outputs;
|
|
33
|
+
}
|
|
34
|
+
const error = instanceErrors[instanceId];
|
|
35
|
+
if (error) {
|
|
36
|
+
throw error;
|
|
35
37
|
}
|
|
36
|
-
return outputs;
|
|
37
|
-
}
|
|
38
|
-
function _evaluateInstance(instanceId) {
|
|
39
|
-
const inputs = {};
|
|
40
38
|
const instance = allInstancesMap.get(instanceId);
|
|
41
|
-
logger2.debug("evaluating instance", { instanceId });
|
|
42
39
|
if (!instance) {
|
|
43
40
|
throw new Error(`Instance not found: ${instanceId}`);
|
|
44
41
|
}
|
|
45
|
-
|
|
42
|
+
try {
|
|
43
|
+
outputs = _evaluateInstance(instance);
|
|
44
|
+
instanceOutputs.set(instanceId, outputs);
|
|
45
|
+
return outputs;
|
|
46
|
+
} catch (error2) {
|
|
47
|
+
if (instance.kind === "composite" || !allInstancesMap.has(instance.id)) {
|
|
48
|
+
topLevelErrors[instance.id] = errorToString(error2);
|
|
49
|
+
}
|
|
50
|
+
instanceErrors[instanceId] = error2;
|
|
51
|
+
throw error2;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function _evaluateInstance(instance) {
|
|
55
|
+
const inputs = {};
|
|
56
|
+
logger2.debug("evaluating instance", { instanceId: instance.id });
|
|
57
|
+
for (const [inputName, input] of Object.entries(resolvedInputs[instance.id] ?? {})) {
|
|
46
58
|
inputs[inputName] = input.map((input2) => {
|
|
47
59
|
const evaluated = evaluateInstance(input2.input.instanceId);
|
|
48
60
|
return evaluated[input2.input.output];
|
|
@@ -50,7 +62,7 @@ function evaluateProject(logger2, components, allInstances, resolvedInputs, inst
|
|
|
50
62
|
}
|
|
51
63
|
const component = components[instance.type];
|
|
52
64
|
if (!component) {
|
|
53
|
-
throw new Error(`Component not found: ${instance.type}, required by instance: ${
|
|
65
|
+
throw new Error(`Component not found: ${instance.type}, required by instance: ${instance.id}`);
|
|
54
66
|
}
|
|
55
67
|
return component({
|
|
56
68
|
name: instance.name,
|
|
@@ -102,17 +114,11 @@ var data = workerData;
|
|
|
102
114
|
var logger = pino({ name: "library-worker" });
|
|
103
115
|
try {
|
|
104
116
|
const library = await loadComponents(logger, data.libraryModulePaths);
|
|
105
|
-
const result = evaluateProject(
|
|
106
|
-
|
|
107
|
-
library,
|
|
108
|
-
data.allInstances,
|
|
109
|
-
data.resolvedInputs,
|
|
110
|
-
data.instanceIds
|
|
111
|
-
);
|
|
112
|
-
parentPort.postMessage(result);
|
|
117
|
+
const result = evaluateProject(logger, library, data.allInstances, data.resolvedInputs);
|
|
118
|
+
parentPort?.postMessage(result);
|
|
113
119
|
} catch (error) {
|
|
114
120
|
logger.error({ error }, "failed to evaluate project");
|
|
115
|
-
parentPort
|
|
121
|
+
parentPort?.postMessage({
|
|
116
122
|
success: false,
|
|
117
123
|
error: errorToString(error)
|
|
118
124
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/library/worker/evaluator.ts","../../../src/library/worker/loader.lite.ts","../../../src/library/worker/main.ts"],"names":["logger","input"],"mappings":";;;;;;AAWO,SAAS,eAAA,CACdA,OAAAA,EACA,UAAA,EACA,YAAA,EACA,
|
|
1
|
+
{"version":3,"sources":["../../../src/library/worker/evaluator.ts","../../../src/library/worker/loader.lite.ts","../../../src/library/worker/main.ts"],"names":["logger","error","input"],"mappings":"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","file":"main.js","sourcesContent":["import type { Logger } from \"pino\"\nimport type { ProjectEvaluationResult } from \"../abstractions\"\nimport type { ResolvedInstanceInput } from \"../../shared\"\nimport {\n getRuntimeInstances,\n InstanceNameConflictError,\n type Component,\n type InstanceModel,\n} from \"@highstate/contract\"\nimport { errorToString } from \"../../common\"\n\nexport function evaluateProject(\n logger: Logger,\n components: Readonly<Record<string, Component>>,\n allInstances: InstanceModel[],\n resolvedInputs: Record<string, Record<string, ResolvedInstanceInput[]>>,\n): ProjectEvaluationResult {\n const allInstancesMap = new Map(allInstances.map(instance => [instance.id, instance]))\n\n const instanceErrors: Record<string, unknown> = {}\n const topLevelErrors: Record<string, string> = {}\n\n const instanceOutputs = new Map<string, Record<string, unknown>>()\n\n for (const instance of allInstances) {\n try {\n evaluateInstance(instance.id)\n } catch (error) {\n if (error instanceof InstanceNameConflictError) {\n // fail the whole evaluation if there's a name conflict\n return {\n success: false,\n error: error.message,\n }\n }\n }\n }\n\n return {\n success: true,\n\n virtualInstances: getRuntimeInstances()\n .map(instance => instance.instance)\n // only include top-level composite instances and their children\n .filter(instance => instance.kind === \"composite\" || !allInstancesMap.has(instance.id)),\n\n topLevelErrors,\n }\n\n function evaluateInstance(instanceId: InstanceModel[\"id\"]): Record<string, unknown> {\n let outputs = instanceOutputs.get(instanceId)\n if (outputs) {\n return outputs\n }\n\n // do not evaluate instance if it has an error, just rethrow it\n const error = instanceErrors[instanceId]\n if (error) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw error\n }\n\n const instance = allInstancesMap.get(instanceId)\n if (!instance) {\n throw new Error(`Instance not found: ${instanceId}`)\n }\n\n try {\n outputs = _evaluateInstance(instance)\n\n instanceOutputs.set(instanceId, outputs)\n return outputs\n } catch (error) {\n if (instance.kind === \"composite\" || !allInstancesMap.has(instance.id)) {\n topLevelErrors[instance.id] = errorToString(error)\n }\n\n instanceErrors[instanceId] = error\n throw error\n }\n }\n\n function _evaluateInstance(instance: InstanceModel): Record<string, unknown> {\n const inputs: Record<string, unknown> = {}\n\n logger.debug(\"evaluating instance\", { instanceId: instance.id })\n\n for (const [inputName, input] of Object.entries(resolvedInputs[instance.id] ?? {})) {\n inputs[inputName] = input.map(input => {\n const evaluated = evaluateInstance(input.input.instanceId)\n\n return evaluated[input.input.output]\n })\n }\n\n const component = components[instance.type]\n if (!component) {\n throw new Error(`Component not found: ${instance.type}, required by instance: ${instance.id}`)\n }\n\n return component({\n name: instance.name,\n args: instance.args as Record<string, never>,\n inputs: inputs as Record<string, never>,\n })\n }\n}\n","import type { Logger } from \"pino\"\nimport { type Component, isComponent } from \"@highstate/contract\"\n\nexport async function loadComponents(\n logger: Logger,\n modulePaths: string[],\n): Promise<Readonly<Record<string, Component>>> {\n const modules: Record<string, unknown> = {}\n for (const modulePath of modulePaths) {\n try {\n logger.debug({ modulePath }, \"loading module\")\n modules[modulePath] = await import(modulePath)\n\n logger.debug({ modulePath }, \"module loaded\")\n } catch (err) {\n logger.error({ modulePath, err }, \"module load failed\")\n }\n }\n\n const components: Record<string, Component> = {}\n\n await _loadLibrary(modules, components)\n logger.debug(\"library loaded with %s components\", Object.keys(components).length)\n\n return components\n}\n\nasync function _loadLibrary(value: unknown, components: Record<string, Component>): Promise<void> {\n if (isComponent(value)) {\n components[value.model.type] = value\n return\n }\n\n if (typeof value !== \"object\" || value === null) {\n return\n }\n\n if (\"_zod\" in value) {\n // this is a zod schema, we can skip it\n return\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n await _loadLibrary(item, components)\n }\n\n return\n }\n\n for (const key in value) {\n await _loadLibrary((value as Record<string, unknown>)[key], components)\n }\n}\n","import type { WorkerData } from \"./protocol\"\nimport { parentPort, workerData } from \"node:worker_threads\"\nimport { pino } from \"pino\"\nimport { errorToString } from \"../../common\"\nimport { evaluateProject } from \"./evaluator\"\nimport { loadComponents } from \"./loader.lite\"\n\nconst data = workerData as WorkerData\n\nconst logger = pino({ name: \"library-worker\" })\n\ntry {\n const library = await loadComponents(logger, data.libraryModulePaths)\n const result = evaluateProject(logger, library, data.allInstances, data.resolvedInputs)\n\n parentPort?.postMessage(result)\n} catch (error) {\n logger.error({ error }, \"failed to evaluate project\")\n\n parentPort?.postMessage({\n success: false,\n error: errorToString(error),\n })\n}\n"]}
|
package/dist/shared/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AccessError, GraphResolver, InputHashResolver, InputResolver, MAX_WORKER_START_ATTEMPTS, PromiseTracker, ValidationResolver,
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { AccessError, BackendError, CannotDeleteLastUnlockMethodError, GraphResolver, InputHashResolver, InputResolver, InstanceLockLostError, InstanceLockedError, InstanceNotFoundError, InstanceStateNotFoundError, InvalidInstanceKindError, MAX_WORKER_START_ATTEMPTS, OperationNotFoundError, ProjectLockedError, ProjectNotFoundError, PromiseTracker, SystemSecretNames, ValidationResolver, WorkerVersionNotFoundError, apiKeyMetaSchema, apiKeyOutputSchema, apiKeyQuerySchema, applyLibraryUpdate, artifactOutputSchema, artifactQuerySchema, backendUnlockMethodSchema, codebaseLibrary, codebaseProjectModelStorage, collectionQueryResult, collectionQuerySchema, createAsyncBatcher, databaseProjectModelStorage, diffLibraries, extractDigestFromImage, finalInstanceOperationStatuses, finalOperationStatuses, forSchema, getAllDependents, getMatchedInjectionInstanceInputs, getResolvedHubInputs, getResolvedInjectionInstanceInputs, getResolvedInstanceInputs, getResolvedInstanceOutputs, getWorkerIdentity, globalProjectSpace, hasObjectMeta, hostPulumiBackend, instanceCustomStatusInputSchema, instanceLockEventSchema, instanceLockOutputSchema, instanceStateEventSchema, int32ToBytes, isFinalOperationStatus, isInstanceDeployed, isTransientInstanceOperationStatus, isTransientOperationStatus, isVirtualGhostInstance, librarySpecSchema, operationEventSchema, operationInputSchema, operationMetaSchema, operationOptionsSchema, operationOutputSchema, operationPhaseInstanceSchema, operationPhaseSchema, operationPhaseTypeSchema, operationStatusSchema, operationTypeSchema, pageDetailsOutputSchema, pageOutputSchema, pageQuerySchema, projectInputSchema, projectModelEventSchema, projectModelStorageSpecSchema, projectOutputSchema, projectUnlockStateSchema, projectUnlockSuiteSchema, pulumiBackendSpecSchema, resolverFactories, secretOutputSchema, secretQuerySchema, serviceAccountOutputSchema, serviceAccountQuerySchema, terminalDetailsOutputSchema, terminalOutputSchema, terminalQuerySchema, terminalSessionOutputSchema, terminalStatusSchema, toApiKeyOutput, toPageOutput, toSecretOutput, toTerminalDetailsOutput, toTerminalOutput, toTerminalSessionOutput, toWorkerOutput, toWorkerVersionOutput, triggerOutputSchema, triggerQuerySchema, unlockMethodInputSchema, unlockMethodMetaSchema, unlockMethodOutputSchema, unlockMethodType, waitAll, workerOutputSchema, workerQuerySchema, workerUnitRegistrationEventSchema, workerVersionOutputSchema, workerVersionStatusSchema } from '../chunk-5WVU2AK4.js';
|
|
2
|
+
import '../chunk-I7BWSAN6.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@highstate/backend",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"highstate": {
|
|
6
6
|
"sourceHash": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
13
|
"src",
|
|
14
|
-
"
|
|
14
|
+
"prisma"
|
|
15
15
|
],
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -23,22 +23,31 @@
|
|
|
23
23
|
"default": "./dist/shared/index.js"
|
|
24
24
|
},
|
|
25
25
|
"./library-worker": "./dist/library/worker/main.js",
|
|
26
|
-
"./package-resolution-worker": "./dist/library/package-resolution-worker.js"
|
|
26
|
+
"./package-resolution-worker": "./dist/library/package-resolution-worker.js",
|
|
27
|
+
"./prisma-config": "./dist/database/local/prisma.config.js"
|
|
27
28
|
},
|
|
28
29
|
"publishConfig": {
|
|
29
30
|
"access": "public"
|
|
30
31
|
},
|
|
31
32
|
"scripts": {
|
|
32
33
|
"build": "highstate build",
|
|
33
|
-
"
|
|
34
|
+
"typecheck": "tsc --noEmit --skipLibCheck",
|
|
35
|
+
"test": "vitest --run",
|
|
36
|
+
"generate:project": "yarn prisma generate --schema prisma/project",
|
|
37
|
+
"generate:backend": "yarn prisma generate --schema prisma/backend/postgresql && yarn prisma generate --schema prisma/backend/sqlite",
|
|
38
|
+
"migrate": "yarn prisma migrate deploy --config dist/database/local/prisma.config.js"
|
|
34
39
|
},
|
|
35
40
|
"dependencies": {
|
|
36
41
|
"@aws-crypto/crc32": "^5.2.0",
|
|
37
|
-
"@highstate/contract": "^0.9.
|
|
42
|
+
"@highstate/contract": "^0.9.19",
|
|
38
43
|
"@msgpack/msgpack": "^3.1.2",
|
|
39
44
|
"@napi-rs/keyring": "^1.1.8",
|
|
40
45
|
"@noble/ciphers": "^1.3.0",
|
|
41
46
|
"@noble/hashes": "^1.8.0",
|
|
47
|
+
"@paralleldrive/cuid2": "^2.2.2",
|
|
48
|
+
"@prisma/adapter-libsql": "^6.14.0",
|
|
49
|
+
"@prisma/client": "^6.14.0",
|
|
50
|
+
"@prisma/driver-adapter-utils": "^6.14.0",
|
|
42
51
|
"@types/node": "^22.10.1",
|
|
43
52
|
"age-encryption": "^0.2.3",
|
|
44
53
|
"ajv": "^8.17.1",
|
|
@@ -49,15 +58,14 @@
|
|
|
49
58
|
"crypto-hash": "^3.1.0",
|
|
50
59
|
"dotenv": "^16.4.7",
|
|
51
60
|
"execa": "^9.6.0",
|
|
52
|
-
"flexsearch": "^0.8.205",
|
|
53
61
|
"import-meta-resolve": "^4.1.0",
|
|
54
62
|
"lru-cache": "^11.1.0",
|
|
55
63
|
"nano-spawn": "^0.2.0",
|
|
56
|
-
"nypm": "^0.6.
|
|
64
|
+
"nypm": "^0.6.1",
|
|
57
65
|
"pino": "^9.6.0",
|
|
58
66
|
"pkg-types": "^1.2.1",
|
|
67
|
+
"prisma": "^6.14.0",
|
|
59
68
|
"remeda": "^2.21.0",
|
|
60
|
-
"rev-dep": "^1.5.4",
|
|
61
69
|
"ulid": "^3.0.1",
|
|
62
70
|
"uuid": "^11.1.0",
|
|
63
71
|
"watcher": "^2.3.1",
|
|
@@ -80,11 +88,12 @@
|
|
|
80
88
|
"classic-level": "^3.0.0",
|
|
81
89
|
"highstate-cli-bootstrap": "patch:@highstate/cli@npm%3A0.9.16#~/.yarn/patches/@highstate-cli-npm-0.9.16-e03b564691.patch",
|
|
82
90
|
"pino-pretty": "^13.0.0",
|
|
91
|
+
"prisma-json-types-generator": "^3.5.2",
|
|
83
92
|
"rollup": "^4.28.1",
|
|
84
93
|
"ts-markdown-builder": "^0.4.1",
|
|
85
94
|
"type-fest": "^4.41.0",
|
|
86
95
|
"typescript": "^5.7.2",
|
|
87
96
|
"vitest": "^3.2.4"
|
|
88
97
|
},
|
|
89
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "e77d292335556c6e5b6275acda1a3d1609d786a1"
|
|
90
99
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
model Library {
|
|
2
|
+
/// The CUIDv2 of the library.
|
|
3
|
+
id String @id @default(cuid(2))
|
|
4
|
+
|
|
5
|
+
/// The metadata of the library managed by the backend.
|
|
6
|
+
///
|
|
7
|
+
/// [CommonObjectMeta]
|
|
8
|
+
meta Json
|
|
9
|
+
|
|
10
|
+
/// The spec of the library.
|
|
11
|
+
///
|
|
12
|
+
/// [LibrarySpec]
|
|
13
|
+
spec Json
|
|
14
|
+
|
|
15
|
+
/// The projects using this library.
|
|
16
|
+
projects Project[]
|
|
17
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
model Project {
|
|
2
|
+
/// The CUIDv2 of the project.
|
|
3
|
+
id String @id @default(cuid(2))
|
|
4
|
+
|
|
5
|
+
/// Project meta managed by the backend.
|
|
6
|
+
///
|
|
7
|
+
/// [CommonObjectMeta]
|
|
8
|
+
meta Json
|
|
9
|
+
|
|
10
|
+
/// The name of the project within the space.
|
|
11
|
+
name String
|
|
12
|
+
|
|
13
|
+
/// The ID of the project space this project belongs to.
|
|
14
|
+
spaceId String
|
|
15
|
+
|
|
16
|
+
/// The ID of the project model storage this project uses.
|
|
17
|
+
modelStorageId String
|
|
18
|
+
|
|
19
|
+
/// The ID of the library used by this project.
|
|
20
|
+
libraryId String
|
|
21
|
+
|
|
22
|
+
/// The ID of the Pulumi backend used by this project.
|
|
23
|
+
pulumiBackendId String
|
|
24
|
+
|
|
25
|
+
/// Encrypted project master key in AGE format.
|
|
26
|
+
encryptedMasterKey String
|
|
27
|
+
|
|
28
|
+
/// The unlock suite for this project.
|
|
29
|
+
///
|
|
30
|
+
/// [ProjectUnlockSuite]
|
|
31
|
+
unlockSuite Json
|
|
32
|
+
|
|
33
|
+
/// The current version of the project database.
|
|
34
|
+
/// This is used to determine if the project needs to be migrated.
|
|
35
|
+
databaseVersion Int
|
|
36
|
+
|
|
37
|
+
/// The date and time when the project was created.
|
|
38
|
+
createdAt DateTime @default(now())
|
|
39
|
+
|
|
40
|
+
/// The date and time when the project was last updated.
|
|
41
|
+
updatedAt DateTime @updatedAt
|
|
42
|
+
|
|
43
|
+
/// The project space this project belongs to.
|
|
44
|
+
space ProjectSpace @relation(fields: [spaceId], references: [id])
|
|
45
|
+
|
|
46
|
+
/// The project model storage this project uses.
|
|
47
|
+
modelStorage ProjectModelStorage @relation(fields: [modelStorageId], references: [id])
|
|
48
|
+
|
|
49
|
+
/// The library used by this project.
|
|
50
|
+
library Library @relation(fields: [libraryId], references: [id])
|
|
51
|
+
|
|
52
|
+
/// The Pulumi backend used by this project.
|
|
53
|
+
pulumiBackend PulumiBackend @relation(fields: [pulumiBackendId], references: [id])
|
|
54
|
+
|
|
55
|
+
@@unique([spaceId, name])
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
model ProjectSpace {
|
|
59
|
+
/// The CUIDv2 of the project space.
|
|
60
|
+
id String @id @default(cuid(2))
|
|
61
|
+
|
|
62
|
+
/// The name of the project space within the parent space.
|
|
63
|
+
///
|
|
64
|
+
/// Will be null for the global project space.
|
|
65
|
+
name String?
|
|
66
|
+
|
|
67
|
+
/// The ID of the parent project space, if any.
|
|
68
|
+
parentId String?
|
|
69
|
+
|
|
70
|
+
/// The metadata of the project space managed by the backend.
|
|
71
|
+
///
|
|
72
|
+
/// [CommonObjectMeta]
|
|
73
|
+
meta Json
|
|
74
|
+
|
|
75
|
+
/// The projects in this project space.
|
|
76
|
+
projects Project[]
|
|
77
|
+
|
|
78
|
+
/// The parent project space, if any.
|
|
79
|
+
parent ProjectSpace? @relation("ProjectSpaceHierarchy", fields: [parentId], references: [id])
|
|
80
|
+
|
|
81
|
+
/// The child project spaces, if any.
|
|
82
|
+
children ProjectSpace[] @relation("ProjectSpaceHierarchy")
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
model ProjectModelStorage {
|
|
86
|
+
/// The CUIDv2 of the project model storage.
|
|
87
|
+
id String @id @default(cuid(2))
|
|
88
|
+
|
|
89
|
+
/// The metadata of the project model storage managed by the backend.
|
|
90
|
+
///
|
|
91
|
+
/// [CommonObjectMeta]
|
|
92
|
+
meta Json
|
|
93
|
+
|
|
94
|
+
/// The specification of the project model storage.
|
|
95
|
+
///
|
|
96
|
+
/// [ProjectModelStorageSpec]
|
|
97
|
+
spec Json
|
|
98
|
+
|
|
99
|
+
/// The projects using this model storage.
|
|
100
|
+
projects Project[]
|
|
101
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
model PulumiBackend {
|
|
2
|
+
/// The CUIDv2 of the Pulumi backend.
|
|
3
|
+
id String @id @default(cuid(2))
|
|
4
|
+
|
|
5
|
+
/// The backend meta managed by the backend.
|
|
6
|
+
///
|
|
7
|
+
/// [CommonObjectMeta]
|
|
8
|
+
meta Json
|
|
9
|
+
|
|
10
|
+
/// The spec of the Pulumi backend.
|
|
11
|
+
///
|
|
12
|
+
/// [PulumiBackendSpec]
|
|
13
|
+
spec Json
|
|
14
|
+
|
|
15
|
+
/// The projects using this backend.
|
|
16
|
+
projects Project[]
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
datasource db {
|
|
2
|
+
provider = "postgresql"
|
|
3
|
+
url = env("BACKEND_DATABASE_URL")
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
generator client {
|
|
7
|
+
provider = "prisma-client"
|
|
8
|
+
previewFeatures = ["queryCompiler", "driverAdapters"]
|
|
9
|
+
output = "../../../src/database/_generated/backend/postgresql"
|
|
10
|
+
moduleFormat = "esm"
|
|
11
|
+
generatedFileExtension = "ts"
|
|
12
|
+
importFileExtension = "ts"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
generator json {
|
|
16
|
+
provider = "prisma-json-types-generator"
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
datasource db {
|
|
2
|
+
provider = "sqlite"
|
|
3
|
+
directUrl = env("HIGHSTATE_MIGRATION_DATABASE_URL")
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
generator client {
|
|
7
|
+
provider = "prisma-client"
|
|
8
|
+
previewFeatures = ["queryCompiler", "driverAdapters"]
|
|
9
|
+
output = "../../../src/database/_generated/backend/sqlite"
|
|
10
|
+
moduleFormat = "esm"
|
|
11
|
+
generatedFileExtension = "ts"
|
|
12
|
+
importFileExtension = "ts"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
generator json {
|
|
16
|
+
provider = "prisma-json-types-generator"
|
|
17
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "Library" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"meta" JSONB NOT NULL
|
|
5
|
+
);
|
|
6
|
+
|
|
7
|
+
-- CreateTable
|
|
8
|
+
CREATE TABLE "Project" (
|
|
9
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
10
|
+
"meta" JSONB NOT NULL,
|
|
11
|
+
"spaceId" TEXT NOT NULL,
|
|
12
|
+
"libraryId" TEXT NOT NULL,
|
|
13
|
+
"pulumiBackendId" TEXT NOT NULL,
|
|
14
|
+
"encryptedMasterKey" TEXT NOT NULL,
|
|
15
|
+
"unlockSuite" JSONB NOT NULL,
|
|
16
|
+
"databaseVersion" INTEGER NOT NULL,
|
|
17
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
18
|
+
"updatedAt" DATETIME NOT NULL,
|
|
19
|
+
CONSTRAINT "Project_spaceId_fkey" FOREIGN KEY ("spaceId") REFERENCES "ProjectSpace" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
20
|
+
CONSTRAINT "Project_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "Library" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
21
|
+
CONSTRAINT "Project_pulumiBackendId_fkey" FOREIGN KEY ("pulumiBackendId") REFERENCES "PulumiBackend" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
-- CreateTable
|
|
25
|
+
CREATE TABLE "ProjectSpace" (
|
|
26
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
27
|
+
"meta" JSONB NOT NULL
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
-- CreateTable
|
|
31
|
+
CREATE TABLE "PulumiBackend" (
|
|
32
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
33
|
+
"meta" JSONB NOT NULL
|
|
34
|
+
);
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- Added the required column `spec` to the `Library` table without a default value. This is not possible if the table is not empty.
|
|
5
|
+
- Added the required column `name` to the `Project` table without a default value. This is not possible if the table is not empty.
|
|
6
|
+
- Added the required column `spec` to the `PulumiBackend` table without a default value. This is not possible if the table is not empty.
|
|
7
|
+
|
|
8
|
+
*/
|
|
9
|
+
-- RedefineTables
|
|
10
|
+
PRAGMA defer_foreign_keys=ON;
|
|
11
|
+
PRAGMA foreign_keys=OFF;
|
|
12
|
+
CREATE TABLE "new_Library" (
|
|
13
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
14
|
+
"meta" JSONB NOT NULL,
|
|
15
|
+
"spec" JSONB NOT NULL
|
|
16
|
+
);
|
|
17
|
+
INSERT INTO "new_Library" ("id", "meta") SELECT "id", "meta" FROM "Library";
|
|
18
|
+
DROP TABLE "Library";
|
|
19
|
+
ALTER TABLE "new_Library" RENAME TO "Library";
|
|
20
|
+
CREATE TABLE "new_Project" (
|
|
21
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
22
|
+
"meta" JSONB NOT NULL,
|
|
23
|
+
"name" TEXT NOT NULL,
|
|
24
|
+
"spaceId" TEXT NOT NULL,
|
|
25
|
+
"libraryId" TEXT NOT NULL,
|
|
26
|
+
"pulumiBackendId" TEXT NOT NULL,
|
|
27
|
+
"encryptedMasterKey" TEXT NOT NULL,
|
|
28
|
+
"unlockSuite" JSONB NOT NULL,
|
|
29
|
+
"databaseVersion" INTEGER NOT NULL,
|
|
30
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
"updatedAt" DATETIME NOT NULL,
|
|
32
|
+
CONSTRAINT "Project_spaceId_fkey" FOREIGN KEY ("spaceId") REFERENCES "ProjectSpace" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
33
|
+
CONSTRAINT "Project_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "Library" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
34
|
+
CONSTRAINT "Project_pulumiBackendId_fkey" FOREIGN KEY ("pulumiBackendId") REFERENCES "PulumiBackend" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
35
|
+
);
|
|
36
|
+
INSERT INTO "new_Project" ("createdAt", "databaseVersion", "encryptedMasterKey", "id", "libraryId", "meta", "pulumiBackendId", "spaceId", "unlockSuite", "updatedAt") SELECT "createdAt", "databaseVersion", "encryptedMasterKey", "id", "libraryId", "meta", "pulumiBackendId", "spaceId", "unlockSuite", "updatedAt" FROM "Project";
|
|
37
|
+
DROP TABLE "Project";
|
|
38
|
+
ALTER TABLE "new_Project" RENAME TO "Project";
|
|
39
|
+
CREATE UNIQUE INDEX "Project_spaceId_name_key" ON "Project"("spaceId", "name");
|
|
40
|
+
CREATE TABLE "new_ProjectSpace" (
|
|
41
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
42
|
+
"name" TEXT,
|
|
43
|
+
"parentId" TEXT,
|
|
44
|
+
"meta" JSONB NOT NULL,
|
|
45
|
+
CONSTRAINT "ProjectSpace_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "ProjectSpace" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
46
|
+
);
|
|
47
|
+
INSERT INTO "new_ProjectSpace" ("id", "meta") SELECT "id", "meta" FROM "ProjectSpace";
|
|
48
|
+
DROP TABLE "ProjectSpace";
|
|
49
|
+
ALTER TABLE "new_ProjectSpace" RENAME TO "ProjectSpace";
|
|
50
|
+
CREATE TABLE "new_PulumiBackend" (
|
|
51
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
52
|
+
"meta" JSONB NOT NULL,
|
|
53
|
+
"spec" JSONB NOT NULL
|
|
54
|
+
);
|
|
55
|
+
INSERT INTO "new_PulumiBackend" ("id", "meta") SELECT "id", "meta" FROM "PulumiBackend";
|
|
56
|
+
DROP TABLE "PulumiBackend";
|
|
57
|
+
ALTER TABLE "new_PulumiBackend" RENAME TO "PulumiBackend";
|
|
58
|
+
PRAGMA foreign_keys=ON;
|
|
59
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- Added the required column `modelStorageId` to the `Project` table without a default value. This is not possible if the table is not empty.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- CreateTable
|
|
8
|
+
CREATE TABLE "ProjectModelStorage" (
|
|
9
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
10
|
+
"projectId" TEXT NOT NULL,
|
|
11
|
+
"meta" JSONB NOT NULL,
|
|
12
|
+
"spec" JSONB NOT NULL
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
-- RedefineTables
|
|
16
|
+
PRAGMA defer_foreign_keys=ON;
|
|
17
|
+
PRAGMA foreign_keys=OFF;
|
|
18
|
+
CREATE TABLE "new_Project" (
|
|
19
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
20
|
+
"meta" JSONB NOT NULL,
|
|
21
|
+
"name" TEXT NOT NULL,
|
|
22
|
+
"spaceId" TEXT NOT NULL,
|
|
23
|
+
"modelStorageId" TEXT NOT NULL,
|
|
24
|
+
"libraryId" TEXT NOT NULL,
|
|
25
|
+
"pulumiBackendId" TEXT NOT NULL,
|
|
26
|
+
"encryptedMasterKey" TEXT NOT NULL,
|
|
27
|
+
"unlockSuite" JSONB NOT NULL,
|
|
28
|
+
"databaseVersion" INTEGER NOT NULL,
|
|
29
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
30
|
+
"updatedAt" DATETIME NOT NULL,
|
|
31
|
+
CONSTRAINT "Project_spaceId_fkey" FOREIGN KEY ("spaceId") REFERENCES "ProjectSpace" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
32
|
+
CONSTRAINT "Project_modelStorageId_fkey" FOREIGN KEY ("modelStorageId") REFERENCES "ProjectModelStorage" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
33
|
+
CONSTRAINT "Project_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "Library" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
|
34
|
+
CONSTRAINT "Project_pulumiBackendId_fkey" FOREIGN KEY ("pulumiBackendId") REFERENCES "PulumiBackend" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
35
|
+
);
|
|
36
|
+
INSERT INTO "new_Project" ("createdAt", "databaseVersion", "encryptedMasterKey", "id", "libraryId", "meta", "name", "pulumiBackendId", "spaceId", "unlockSuite", "updatedAt") SELECT "createdAt", "databaseVersion", "encryptedMasterKey", "id", "libraryId", "meta", "name", "pulumiBackendId", "spaceId", "unlockSuite", "updatedAt" FROM "Project";
|
|
37
|
+
DROP TABLE "Project";
|
|
38
|
+
ALTER TABLE "new_Project" RENAME TO "Project";
|
|
39
|
+
CREATE UNIQUE INDEX "Project_spaceId_name_key" ON "Project"("spaceId", "name");
|
|
40
|
+
PRAGMA foreign_keys=ON;
|
|
41
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the column `projectId` on the `ProjectModelStorage` table. All the data in the column will be lost.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- RedefineTables
|
|
8
|
+
PRAGMA defer_foreign_keys=ON;
|
|
9
|
+
PRAGMA foreign_keys=OFF;
|
|
10
|
+
CREATE TABLE "new_ProjectModelStorage" (
|
|
11
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
12
|
+
"meta" JSONB NOT NULL,
|
|
13
|
+
"spec" JSONB NOT NULL
|
|
14
|
+
);
|
|
15
|
+
INSERT INTO "new_ProjectModelStorage" ("id", "meta", "spec") SELECT "id", "meta", "spec" FROM "ProjectModelStorage";
|
|
16
|
+
DROP TABLE "ProjectModelStorage";
|
|
17
|
+
ALTER TABLE "new_ProjectModelStorage" RENAME TO "ProjectModelStorage";
|
|
18
|
+
PRAGMA foreign_keys=ON;
|
|
19
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
-- This is an empty migration.
|