@tokenoftrust/storefront-runner 1.4.2-rc.0 → 2.0.0
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/apps/storefront/astro.config.mjs +3 -3
- package/apps/storefront/env.d.ts +54 -5
- package/apps/storefront/integrations/materialize-guard.mjs +12 -14
- package/apps/storefront/migrations-apps/0004_deep_morph.sql +36 -0
- package/apps/storefront/migrations-apps/0005_common_mystique.sql +23 -0
- package/apps/storefront/migrations-apps/0006_broad_microchip.sql +16 -0
- package/apps/storefront/migrations-apps/0007_brave_outlaw_kid.sql +15 -0
- package/apps/storefront/migrations-apps/0008_blue_dazzler.sql +11 -0
- package/apps/storefront/migrations-apps/0009_bored_shinobi_shaw.sql +15 -0
- package/apps/storefront/migrations-apps/0010_ws4_verified_provider_measurement.sql +35 -0
- package/apps/storefront/migrations-apps/meta/0004_snapshot.json +1474 -0
- package/apps/storefront/migrations-apps/meta/0005_snapshot.json +1617 -0
- package/apps/storefront/migrations-apps/meta/0006_snapshot.json +1716 -0
- package/apps/storefront/migrations-apps/meta/0007_snapshot.json +1812 -0
- package/apps/storefront/migrations-apps/meta/0008_snapshot.json +1881 -0
- package/apps/storefront/migrations-apps/meta/0009_snapshot.json +1979 -0
- package/apps/storefront/migrations-apps/meta/_journal.json +42 -0
- package/apps/storefront/public/apps/tot.demo.analytics/0.1.0/entry.js +42 -0
- package/apps/storefront/public/platform/amplitude-http/v1/entry.mjs +19 -0
- package/apps/storefront/public/platform/google-measurement/v1/entry.mjs +19 -0
- package/apps/storefront/public/shared/commerce-chrome.css +20 -2
- package/apps/storefront/scripts/build-v84-clean-clone-standalone.mjs +68 -0
- package/apps/storefront/scripts/deny-v84-clean-clone-standalone-capabilities.mjs +111 -0
- package/apps/storefront/scripts/deny-v84-dogfood-capabilities.mjs +2 -0
- package/apps/storefront/scripts/deny-v84-lifecycle-capabilities.mjs +247 -0
- package/apps/storefront/scripts/dogfood-v84-nonportable-routes.ts +73 -0
- package/apps/storefront/scripts/fixed-v84-native-install-producer.ts +79 -0
- package/apps/storefront/scripts/generated/v84-clean-clone-replay.bundle.mjs +10982 -0
- package/apps/storefront/scripts/import-v84-through-ws2.ts +38 -0
- package/apps/storefront/scripts/initialize-v84-lifecycle-tooling-dependency.ts +2 -0
- package/apps/storefront/scripts/initialize-v84-lifecycle-tooling.ts +4 -0
- package/apps/storefront/scripts/install-v84-native-through-ws1.ts +185 -0
- package/apps/storefront/scripts/prove-clone-isolation.ts +506 -0
- package/apps/storefront/scripts/replay-v84-clean-clone-pass.ts +148 -0
- package/apps/storefront/scripts/replay-v84-clean-clone-standalone.ts +35 -0
- package/apps/storefront/scripts/replay-v84-clean-clone.ts +214 -0
- package/apps/storefront/scripts/run-fixed-v84-native-install-producer.mjs +18 -0
- package/apps/storefront/scripts/run-v84-clone-isolation-proof.mjs +18 -0
- package/apps/storefront/scripts/run-v84-clone-lifecycle-proof.mjs +18 -0
- package/apps/storefront/scripts/run-v84-import-through-ws2-proof.mjs +17 -0
- package/apps/storefront/scripts/run-v84-nonportable-route-dogfood.mjs +15 -0
- package/apps/storefront/scripts/sanitize-v84-proof-environment.mjs +21 -0
- package/apps/storefront/scripts/v84CleanCloneGraphPin.ts +42 -0
- package/apps/storefront/scripts/v84CleanCloneSourceGraph.ts +145 -0
- package/apps/storefront/scripts/validate-v84-clone-lifecycle.ts +18 -0
- package/apps/storefront/src/components/Img.astro +1 -1
- package/apps/storefront/src/components/admin/AdminBlogTab.astro +19 -16
- package/apps/storefront/src/components/admin/AdminIntegrationsTab.astro +105 -0
- package/apps/storefront/src/components/admin/AdminPublishTab.astro +1057 -412
- package/apps/storefront/src/components/admin/AdminSettingsTab.astro +2 -2
- package/apps/storefront/src/components/admin/orders/OrdersWorkspace.astro +5 -5
- package/apps/storefront/src/components/chrome/NavDropdown.astro +12 -0
- package/apps/storefront/src/components/chrome/SiteFooter.astro +7 -2
- package/apps/storefront/src/components/chrome/SiteHeader.astro +46 -10
- package/apps/storefront/src/components/compliance/AdultSignatureNotice.astro +1 -1
- package/apps/storefront/src/components/compliance/ComplianceNotice.astro +1 -2
- package/apps/storefront/src/components/compliance/ExciseTaxNotice.astro +1 -2
- package/apps/storefront/src/components/compliance/PactActNotice.astro +1 -1
- package/apps/storefront/src/components/compliance/Prop65Warning.astro +1 -2
- package/apps/storefront/src/components/compliance/PurchaseLimitNotice.astro +2 -3
- package/apps/storefront/src/components/compliance/ShippingRestrictionNotice.astro +2 -2
- package/apps/storefront/src/components/compliance/StateEligibilityNotice.astro +2 -3
- package/apps/storefront/src/components/content/TrustStrip.astro +4 -4
- package/apps/storefront/src/components/islands/MobileNav.tsx +26 -1
- package/apps/storefront/src/components/islands/VariantSelector.tsx +27 -2
- package/apps/storefront/src/components/islands/useCheckoutHandoffCorrelation.ts +75 -0
- package/apps/storefront/src/components/membership/IllustrativeLabel.astro +1 -2
- package/apps/storefront/src/components/membership/TierCards.astro +2 -2
- package/apps/storefront/src/components/membership/TierComparisonTable.astro +2 -2
- package/apps/storefront/src/components/subscription/SavingsExplainer.astro +2 -2
- package/apps/storefront/src/config/adminTenantLookup.ts +35 -0
- package/apps/storefront/src/config/devTenantSeed.ts +9 -9
- package/apps/storefront/src/config/resolver.ts +4 -4
- package/apps/storefront/src/layouts/Layout.astro +100 -20
- package/apps/storefront/src/lib/activity/candidateSubmitLease.ts +87 -0
- package/apps/storefront/src/lib/activity/changeActorAttribution.ts +86 -6
- package/apps/storefront/src/lib/activity/deployVersion.ts +1 -1
- package/apps/storefront/src/lib/admin/adminShell.ts +2 -0
- package/apps/storefront/src/lib/admin/envelope.ts +1 -2
- package/apps/storefront/src/lib/apps/adminService.ts +10 -0
- package/apps/storefront/src/lib/apps/adminSession.ts +1 -1
- package/apps/storefront/src/lib/apps/appVersionStore.ts +281 -0
- package/apps/storefront/src/lib/apps/consentConfigStore.ts +228 -0
- package/apps/storefront/src/lib/apps/gtmMigrationInstall.ts +447 -0
- package/apps/storefront/src/lib/apps/gtmMigrationReport.ts +367 -0
- package/apps/storefront/src/lib/apps/gtmMigrationTab.ts +315 -0
- package/apps/storefront/src/lib/apps/integrationLifecycle.ts +614 -0
- package/apps/storefront/src/lib/apps/integrationLifecycleController.ts +125 -0
- package/apps/storefront/src/lib/apps/integrationReadModel.ts +563 -0
- package/apps/storefront/src/lib/apps/integrationsTab.ts +547 -0
- package/apps/storefront/src/lib/apps/integrationsView.ts +106 -0
- package/apps/storefront/src/lib/apps/managedAnalyticsService.ts +599 -0
- package/apps/storefront/src/lib/apps/orders/orderConversionD1.ts +150 -0
- package/apps/storefront/src/lib/apps/orders/orderForwardReceiver.ts +8 -0
- package/apps/storefront/src/lib/apps/orders/ordersStore.ts +1 -1
- package/apps/storefront/src/lib/apps/orders/verifiedProviderMeasurement.ts +117 -0
- package/apps/storefront/src/lib/apps/registryService.ts +264 -10
- package/apps/storefront/src/lib/apps/tenantIntegrationMaterialization.ts +170 -0
- package/apps/storefront/src/lib/apps/v84CleanCloneReplayContext.ts +16 -0
- package/apps/storefront/src/lib/apps/v84CloneLifecycleCacheEvidence.ts +105 -0
- package/apps/storefront/src/lib/apps/v84CloneLifecycleEvidence.ts +177 -0
- package/apps/storefront/src/lib/apps/v84CloneLifecycleMaterialization.ts +251 -0
- package/apps/storefront/src/lib/apps/v84CloneLifecycleSemantics.ts +241 -0
- package/apps/storefront/src/lib/apps/v84CloneMigrationEvidence.ts +211 -0
- package/apps/storefront/src/lib/apps/v84CloneNativeInstallEvidence.ts +409 -0
- package/apps/storefront/src/lib/apps/v84NonportableCodeCoaching.ts +368 -0
- package/apps/storefront/src/lib/apps/v84NonportableRouteContract.ts +188 -0
- package/apps/storefront/src/lib/apps/v84NonportableRouteDogfood.ts +291 -0
- package/apps/storefront/src/lib/apps/ws1ManagedAnalyticsClient.ts +95 -0
- package/apps/storefront/src/lib/auth/adminApiGuard.ts +66 -0
- package/apps/storefront/src/lib/auth/adminEntry.ts +2 -2
- package/apps/storefront/src/lib/auth/adminLanding.ts +88 -0
- package/apps/storefront/src/lib/blog/collection.ts +97 -10
- package/apps/storefront/src/lib/blog/markdown.ts +1 -1
- package/apps/storefront/src/lib/blog/provider.ts +57 -3
- package/apps/storefront/src/lib/blog/types.ts +9 -9
- package/apps/storefront/src/lib/chrome/examples/tokenoftrust.chrome-assignments.example.json +6 -0
- package/apps/storefront/src/lib/chrome/examples/tokenoftrust.chrome.example.json +79 -0
- package/apps/storefront/src/lib/chrome/model.ts +48 -253
- package/apps/storefront/src/lib/chrome/navCurrent.ts +29 -0
- package/apps/storefront/src/lib/chrome/parseConfig.ts +18 -32
- package/apps/storefront/src/lib/chrome/variant.ts +39 -0
- package/apps/storefront/src/lib/commerce/checkoutHandoffCorrelation.ts +105 -0
- package/apps/storefront/src/lib/compliance/tamper-sentinel-boot.ts +152 -0
- package/apps/storefront/src/lib/compliance/tamper-sentinel.ts +327 -0
- package/apps/storefront/src/lib/content/index.ts +5 -5
- package/apps/storefront/src/lib/content-edit/applyDiff.ts +1 -1
- package/apps/storefront/src/lib/content-edit/route.ts +1 -1
- package/apps/storefront/src/lib/d1/catalog.ts +12 -0
- package/apps/storefront/src/lib/d1/schema-apps.ts +276 -0
- package/apps/storefront/src/lib/dev/cockpit/ask.ts +49 -0
- package/apps/storefront/src/lib/dev/cockpit/clickToSource.ts +71 -0
- package/apps/storefront/src/lib/dev/cockpit/copyCommand.ts +227 -0
- package/apps/storefront/src/lib/dev/cockpit/files.ts +249 -0
- package/apps/storefront/src/lib/dev/cockpit/hostedActivity.ts +500 -0
- package/apps/storefront/src/lib/dev/cockpit/infoPopover.ts +12 -0
- package/apps/storefront/src/lib/dev/cockpit/mcpCopy.ts +34 -0
- package/apps/storefront/src/lib/dev/cockpit/monitor.ts +107 -0
- package/apps/storefront/src/lib/dev/cockpit/stepper.ts +116 -0
- package/apps/storefront/src/lib/dev/cockpit/themeToggle.ts +23 -0
- package/apps/storefront/src/lib/dev/runtimeStore.ts +1 -1
- package/apps/storefront/src/lib/edgeCache.ts +18 -6
- package/apps/storefront/src/lib/email/candidateConflictEmail.ts +80 -0
- package/apps/storefront/src/lib/integration/browserEnvironment.ts +137 -0
- package/apps/storefront/src/lib/integration/managedInstallDeclarations.ts +72 -0
- package/apps/storefront/src/lib/integration/nonceStamp.ts +49 -0
- package/apps/storefront/src/lib/integration/tenantDeclarations.ts +116 -0
- package/apps/storefront/src/lib/membership/eligibility.ts +1 -1
- package/apps/storefront/src/lib/membership/model.ts +1 -2
- package/apps/storefront/src/lib/newsletter/confirmationEmail.ts +2 -2
- package/apps/storefront/src/lib/newsletter/consent.ts +2 -2
- package/apps/storefront/src/lib/newsletter/send.ts +3 -3
- package/apps/storefront/src/lib/previewReload.ts +57 -1
- package/apps/storefront/src/lib/publish/adminPublishTab.ts +1775 -669
- package/apps/storefront/src/lib/publish/buildStream.ts +269 -0
- package/apps/storefront/src/lib/publish/collapsePersistence.ts +72 -0
- package/apps/storefront/src/lib/publish/lifecycleState.ts +369 -0
- package/apps/storefront/src/lib/publish/liveReleaseSummary.ts +29 -0
- package/apps/storefront/src/lib/publish/mergeDoctorOnFailure.ts +78 -0
- package/apps/storefront/src/lib/publish/mergeHealthBanner.ts +62 -0
- package/apps/storefront/src/lib/publish/mergeRowFindings.ts +124 -0
- package/apps/storefront/src/lib/publish/mergeSupportEscalation.ts +75 -0
- package/apps/storefront/src/lib/publish/publish-guard.ts +88 -0
- package/apps/storefront/src/lib/publish/publishFormat.ts +165 -0
- package/apps/storefront/src/lib/publish/publishHero.ts +177 -0
- package/apps/storefront/src/lib/publish/reviewRelease/changeState.ts +66 -0
- package/apps/storefront/src/lib/publish/reviewRelease/copy.ts +141 -0
- package/apps/storefront/src/lib/publish/reviewRelease/index.ts +41 -0
- package/apps/storefront/src/lib/publish/reviewRelease/permissions.ts +47 -0
- package/apps/storefront/src/lib/publish/reviewRelease/releaseState.ts +42 -0
- package/apps/storefront/src/lib/publish/reviewRelease/types.ts +59 -0
- package/apps/storefront/src/lib/publish/reviewRelease/viewModel.ts +440 -0
- package/apps/storefront/src/lib/publish/reviewReleaseWorkspace/actions.ts +161 -0
- package/apps/storefront/src/lib/publish/reviewReleaseWorkspace/controller.ts +325 -0
- package/apps/storefront/src/lib/publish/reviewReleaseWorkspace/render.ts +241 -0
- package/apps/storefront/src/lib/publish/shipWorkspace.ts +22 -3
- package/apps/storefront/src/lib/publish/sseRoute.ts +119 -0
- package/apps/storefront/src/lib/publish/streamLogConsole.ts +142 -0
- package/apps/storefront/src/lib/publish/versionNumber.ts +52 -0
- package/apps/storefront/src/lib/rawChrome.ts +125 -47
- package/apps/storefront/src/lib/rawMarketingHtml.ts +74 -3
- package/apps/storefront/src/lib/seo/alternates.ts +1 -1
- package/apps/storefront/src/lib/social/notify.ts +4 -4
- package/apps/storefront/src/lib/storyblok/content-model.ts +7 -33
- package/apps/storefront/src/lib/storyblok/provider.ts +168 -60
- package/apps/storefront/src/lib/subscription/model.ts +4 -4
- package/apps/storefront/src/lib/the-build/provider.ts +9 -4
- package/apps/storefront/src/middleware/index.ts +273 -51
- package/apps/storefront/src/pages/[...slug].astro +9 -4
- package/apps/storefront/src/pages/admin/review-release.astro +265 -0
- package/apps/storefront/src/pages/admin/select.astro +96 -0
- package/apps/storefront/src/pages/admin.astro +16 -2
- package/apps/storefront/src/pages/api/activity.ts +8 -8
- package/apps/storefront/src/pages/api/admin/activity-alerts.ts +5 -20
- package/apps/storefront/src/pages/api/admin/orders/[id].ts +7 -2
- package/apps/storefront/src/pages/api/admin/orders.ts +8 -2
- package/apps/storefront/src/pages/api/apps/admin/gtm-migration-install.ts +174 -0
- package/apps/storefront/src/pages/api/apps/admin/gtm-migration.ts +96 -0
- package/apps/storefront/src/pages/api/apps/admin/integration-lifecycle.ts +118 -0
- package/apps/storefront/src/pages/api/apps/admin/integrations.ts +89 -0
- package/apps/storefront/src/pages/api/apps/admin/platform-adapters.ts +85 -0
- package/apps/storefront/src/pages/api/apps/internal/order-forward.ts +74 -2
- package/apps/storefront/src/pages/api/commerce/checkout-handoff.ts +77 -0
- package/apps/storefront/src/pages/api/compliance/tamper.ts +88 -0
- package/apps/storefront/src/pages/api/integrations/v1/[operation].ts +108 -0
- package/apps/storefront/src/pages/api/rum/vitals.ts +1 -2
- package/apps/storefront/src/pages/blog/[slug].astro +5 -5
- package/apps/storefront/src/pages/blog/author/[author].astro +3 -3
- package/apps/storefront/src/pages/blog/category/[category].astro +2 -2
- package/apps/storefront/src/pages/blog/index.astro +2 -2
- package/apps/storefront/src/pages/blog/tag/[tag].astro +2 -2
- package/apps/storefront/src/pages/cockpit.astro +61 -1362
- package/apps/storefront/src/pages/index.astro +10 -5
- package/apps/storefront/src/pages/llms.txt.ts +1 -1
- package/apps/storefront/src/pages/products/[handle].astro +7 -6
- package/apps/storefront/src/pages/sitemap.xml.ts +2 -2
- package/apps/storefront/src/pages/style-guide/[tenant]/[theme].astro +31 -27
- package/apps/storefront/src/pages/style-guide/[tenant]/chrome/[theme].astro +1 -1
- package/apps/storefront/src/pages/tenants/[id]/[...path].ts +38 -2
- package/apps/storefront/src/pages/the-build/[slug].astro +4 -4
- package/apps/storefront/src/pages/the-build/index.astro +2 -2
- package/apps/storefront/src/pages/the-build/rss.xml.ts +2 -2
- package/apps/storefront/src/styles/admin.css +27 -1
- package/apps/storefront/tsconfig.json +1 -1
- package/package.json +1 -1
- package/packages/public-runtime/package.json +2 -1
- package/packages/public-runtime/schemas/managed-analytics/v1/adapter-definition.schema.json +427 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/create-integration-install-request.schema.json +161 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/create-migration-draft-request.schema.json +157 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/delete-integration-install-request.schema.json +84 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/delete-migration-draft-request.schema.json +84 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/error-envelope.schema.json +180 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/get-adapter-definition-request.schema.json +52 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/get-integration-install-request.schema.json +52 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/get-integration-revision-request.schema.json +79 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/get-migration-draft-request.schema.json +52 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/integration-install.schema.json +167 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/integration-revision.schema.json +208 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/list-adapter-definitions-request.schema.json +53 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/list-integration-installs-request.schema.json +53 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/list-integration-revisions-request.schema.json +82 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/migration-draft.schema.json +218 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/mutation-request.schema.json +52 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/mutation-success-envelope.schema.json +49 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/read-request.schema.json +20 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/read-success-envelope.schema.json +45 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/revise-integration-install-request.schema.json +156 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/set-integration-install-status-request.schema.json +92 -0
- package/packages/public-runtime/schemas/managed-analytics/v1/update-migration-draft-request.schema.json +184 -0
- package/packages/public-runtime/scripts/generate-managed-analytics-api-v1-schemas.mjs +13 -0
- package/packages/public-runtime/src/activity/catalog.ts +41 -37
- package/packages/public-runtime/src/activity/event.ts +6 -6
- package/packages/public-runtime/src/activity/index.ts +2 -2
- package/packages/public-runtime/src/activity/redaction.ts +4 -4
- package/packages/public-runtime/src/candidate-index.ts +42 -8
- package/packages/public-runtime/src/checkout-orders.ts +2 -2
- package/packages/public-runtime/src/checkout-style-publish.ts +2 -2
- package/packages/public-runtime/src/checkout-style.ts +7 -7
- package/packages/public-runtime/src/checkout.ts +3 -3
- package/packages/public-runtime/src/chrome.ts +777 -0
- package/packages/public-runtime/src/compliance-obligations.ts +310 -0
- package/packages/public-runtime/src/csp.ts +99 -0
- package/packages/public-runtime/src/customization-runtime.ts +32 -1
- package/packages/public-runtime/src/destination-webhook/contract.ts +353 -0
- package/packages/public-runtime/src/embed-catalog.d.mts +9 -0
- package/packages/public-runtime/src/embed-catalog.mjs +40 -0
- package/packages/public-runtime/src/evidence.ts +288 -0
- package/packages/public-runtime/src/gtm-migration/bounds.ts +138 -0
- package/packages/public-runtime/src/gtm-migration/disposition-rules.ts +361 -0
- package/packages/public-runtime/src/gtm-migration/dispositions.ts +181 -0
- package/packages/public-runtime/src/gtm-migration/draft-generator.ts +400 -0
- package/packages/public-runtime/src/gtm-migration/graph.ts +468 -0
- package/packages/public-runtime/src/gtm-migration/index.ts +95 -0
- package/packages/public-runtime/src/gtm-migration/parse.ts +410 -0
- package/packages/public-runtime/src/gtm-migration/references.ts +266 -0
- package/packages/public-runtime/src/gtm-migration/types.ts +86 -0
- package/packages/public-runtime/src/index.ts +16 -1
- package/packages/public-runtime/src/integration/assurance-decision.ts +259 -0
- package/packages/public-runtime/src/integration/assurance.ts +228 -0
- package/packages/public-runtime/src/integration/candidate-evidence.ts +377 -0
- package/packages/public-runtime/src/integration/commerce-broker.ts +497 -0
- package/packages/public-runtime/src/integration/consent-broker.ts +337 -0
- package/packages/public-runtime/src/integration/consent-cmp-demand.ts +115 -0
- package/packages/public-runtime/src/integration/consent-config.ts +260 -0
- package/packages/public-runtime/src/integration/consent-preview.ts +125 -0
- package/packages/public-runtime/src/integration/correlation-token.ts +444 -0
- package/packages/public-runtime/src/integration/csp-compiler.ts +267 -0
- package/packages/public-runtime/src/integration/csp.ts +105 -0
- package/packages/public-runtime/src/integration/digest.ts +43 -0
- package/packages/public-runtime/src/integration/environment.ts +228 -0
- package/packages/public-runtime/src/integration/events-catalog.ts +186 -0
- package/packages/public-runtime/src/integration/events.ts +701 -0
- package/packages/public-runtime/src/integration/g2-action-boundary.ts +106 -0
- package/packages/public-runtime/src/integration/index.ts +90 -0
- package/packages/public-runtime/src/integration/interim-bridge.ts +138 -0
- package/packages/public-runtime/src/integration/lifecycle-boot.ts +317 -0
- package/packages/public-runtime/src/integration/lifecycle-runtime.ts +393 -0
- package/packages/public-runtime/src/integration/lifecycle.ts +94 -0
- package/packages/public-runtime/src/integration/managed-analytics-api-v1-safety.d.mts +2 -0
- package/packages/public-runtime/src/integration/managed-analytics-api-v1-safety.mjs +10 -0
- package/packages/public-runtime/src/integration/managed-analytics-api-v1.schemas.ts +382 -0
- package/packages/public-runtime/src/integration/managed-analytics-api-v1.ts +684 -0
- package/packages/public-runtime/src/integration/managed-analytics-bridge.ts +383 -0
- package/packages/public-runtime/src/integration/managed-analytics-value-safety.ts +14 -0
- package/packages/public-runtime/src/integration/managed-analytics.ts +277 -0
- package/packages/public-runtime/src/integration/manifest.ts +470 -0
- package/packages/public-runtime/src/integration/native-amplitude.ts +362 -0
- package/packages/public-runtime/src/integration/native-ga4.ts +352 -0
- package/packages/public-runtime/src/integration/observability.ts +451 -0
- package/packages/public-runtime/src/integration/order-conversion.ts +0 -0
- package/packages/public-runtime/src/integration/phases.ts +182 -0
- package/packages/public-runtime/src/integration/plan.ts +112 -0
- package/packages/public-runtime/src/integration/platform-adapter-runtime.ts +146 -0
- package/packages/public-runtime/src/integration/platform-adapters.ts +671 -0
- package/packages/public-runtime/src/integration/promotion-gate.ts +451 -0
- package/packages/public-runtime/src/integration/provider-checkout-extension.ts +425 -0
- package/packages/public-runtime/src/integration/receipt-measurement.ts +370 -0
- package/packages/public-runtime/src/integration/regulated-parent-cert.ts +311 -0
- package/packages/public-runtime/src/integration/render-phases.ts +267 -0
- package/packages/public-runtime/src/integration/resolve.ts +465 -0
- package/packages/public-runtime/src/integration/result.ts +239 -0
- package/packages/public-runtime/src/integration/secrets.ts +92 -0
- package/packages/public-runtime/src/integration/tamper-evidence.ts +205 -0
- package/packages/public-runtime/src/integration/tamper-recovery.ts +127 -0
- package/packages/public-runtime/src/integration/version.ts +92 -0
- package/packages/public-runtime/src/integration-capabilities.ts +520 -0
- package/packages/public-runtime/src/membership.ts +2 -2
- package/packages/public-runtime/src/raw-html-policy.ts +2 -4
- package/packages/public-runtime/src/regulated-commerce/broker/consent-dedupe.ts +144 -0
- package/packages/public-runtime/src/regulated-commerce/correlation/contract.ts +177 -0
- package/packages/public-runtime/src/regulated-commerce/diagnostics/local-dispatch.ts +24 -0
- package/packages/public-runtime/src/regulated-commerce/diagnostics/read-model.ts +69 -0
- package/packages/public-runtime/src/regulated-commerce/dispatch/core.ts +134 -0
- package/packages/public-runtime/src/regulated-commerce/events/contract.ts +113 -0
- package/packages/public-runtime/src/regulated-commerce/ledger/core.ts +81 -0
- package/packages/public-runtime/src/regulated-commerce/mappings/ga4-ads.ts +87 -0
- package/packages/public-runtime/src/regulated-commerce/provider-order/bridge.ts +52 -0
- package/packages/public-runtime/src/regulated-commerce/purchase-truth/contract.ts +252 -0
- package/packages/public-runtime/src/regulated-commerce/sources/accepted-browser-operation.ts +67 -0
- package/packages/public-runtime/src/regulated-commerce/testing/fake-destination.ts +93 -0
- package/packages/public-runtime/src/static-bundle.ts +5 -5
- package/packages/public-runtime/src/tenant-assets.ts +143 -4
- package/packages/public-runtime/src/tenant.ts +45 -9
- package/packages/public-runtime/tests/fixtures/integration/browser-environment.example.json +8 -0
- package/packages/public-runtime/tests/fixtures/integration/commerce-event.example.json +44 -0
- package/packages/public-runtime/tests/fixtures/integration/commerce-order-event.example.json +44 -0
- package/packages/public-runtime/tests/fixtures/integration/compliance-assurance-record.example.json +50 -0
- package/packages/public-runtime/tests/fixtures/integration/integration-manifest-v2.example.json +120 -0
- package/packages/public-runtime/tests/fixtures/integration/managed-analytics-v1/fake-adapter-catalog.json +35 -0
- package/packages/public-runtime/tests/fixtures/integration/tenant-action-registry.example.json +11 -0
- package/packages/public-runtime/tests/fixtures/integration/tenant-local-example/README.md +22 -0
- package/packages/public-runtime/tests/fixtures/integration/tenant-local-example/entry.js +30 -0
- package/packages/public-runtime/tests/fixtures/integration/tenant-local-example/manifest.json +75 -0
- package/packages/public-runtime/tests/fixtures/integration/tenant-local-example/public-config.json +3 -0
- package/packages/public-runtime/tests/fixtures/regulated-commerce/fake-destinations.ts +38 -0
- package/packages/public-runtime/tests/gtm-migration/fixtures/gtm-sample-container-v84.provenance.json +29 -0
- package/packages/public-runtime/tests/gtm-migration/fixtures/gtm-sample-container-v84.redacted.json +3397 -0
- package/scripts/dev/file-browser.mjs +2 -2
- package/scripts/dev/file-writer.mjs +2 -2
- package/scripts/dev/integration-guardrails.mjs +498 -0
- package/scripts/dev/safe-path.mjs +2 -2
- package/scripts/dev/tenant-source-root.mjs +1 -1
- package/scripts/tot-dev.mjs +2 -2
|
@@ -90,9 +90,9 @@ export default defineConfig({
|
|
|
90
90
|
imageService: "compile",
|
|
91
91
|
}),
|
|
92
92
|
integrations: [
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
//
|
|
93
|
+
// A framework Worker build requires no real-tenant checkout: tenant content
|
|
94
|
+
// resolves from KV/R2 at request time. The same integration becomes strict
|
|
95
|
+
// only when TOT_BUILD_TENANTS names a per-tenant static publish input.
|
|
96
96
|
materializeGuard(),
|
|
97
97
|
preact({ compat: true }),
|
|
98
98
|
// Astro's file-based router ignores ANY path segment starting with "_" (see
|
package/apps/storefront/env.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ import type {
|
|
|
7
7
|
TenantFeatures,
|
|
8
8
|
ResolvedManagedCheckout,
|
|
9
9
|
CapabilityConfig,
|
|
10
|
+
BrowserEnvironment,
|
|
11
|
+
CompiledIntegrationCsp,
|
|
12
|
+
EffectivePlan,
|
|
10
13
|
} from "@tot/public-runtime";
|
|
11
14
|
import type { ToTClient } from "@/lib/tot/ToTClient";
|
|
12
15
|
import type { ContentProvider } from "@/lib/storyblok/provider";
|
|
@@ -29,6 +32,12 @@ interface KVNamespaceLike {
|
|
|
29
32
|
interface R2BucketLike {
|
|
30
33
|
get(key: string): Promise<unknown>;
|
|
31
34
|
put(key: string, value: unknown): Promise<unknown>;
|
|
35
|
+
list(opts?: { prefix?: string; cursor?: string; limit?: number }): Promise<{
|
|
36
|
+
objects: { key: string }[];
|
|
37
|
+
truncated: boolean;
|
|
38
|
+
cursor?: string;
|
|
39
|
+
}>;
|
|
40
|
+
delete(keys: string | string[]): Promise<void>;
|
|
32
41
|
}
|
|
33
42
|
|
|
34
43
|
interface CloudflareEnv {
|
|
@@ -49,7 +58,7 @@ interface CloudflareEnv {
|
|
|
49
58
|
TOT_SECRET_KEY?: string;
|
|
50
59
|
TOT_ACCESS_TOKEN?: string;
|
|
51
60
|
PUBLIC_CF_ANALYTICS_TOKEN?: string;
|
|
52
|
-
/** HMAC secret for signing/verifying customization preview tokens
|
|
61
|
+
/** HMAC secret for signing/verifying customization preview tokens. */
|
|
53
62
|
CUSTOMIZATION_PREVIEW_SECRET?: string;
|
|
54
63
|
/**
|
|
55
64
|
* Managed checkout (Track A). `FOXY_STORE_SUBDOMAIN` overrides the tenant's default
|
|
@@ -64,7 +73,7 @@ interface CloudflareEnv {
|
|
|
64
73
|
FOXY_STORE_DOMAIN?: string;
|
|
65
74
|
FOXY_CART_SECRET?: string;
|
|
66
75
|
/**
|
|
67
|
-
* Order READ API bearer
|
|
76
|
+
* Order READ API bearer — the tenant's ToT `partnerApi.apiKey`, sent as
|
|
68
77
|
* `Authorization: Bearer` to the checkout order API. Server-side only (never
|
|
69
78
|
* shipped to the browser). Absent -> the Orders route reports `not_provisioned`.
|
|
70
79
|
*/
|
|
@@ -120,17 +129,34 @@ declare global {
|
|
|
120
129
|
*/
|
|
121
130
|
basePath: string;
|
|
122
131
|
/**
|
|
123
|
-
* Which customization environment to serve
|
|
132
|
+
* Which customization environment to serve. "live" on production
|
|
124
133
|
* hosts; "test" only behind a valid, tenant-bound preview token on a
|
|
125
134
|
* preview host. Downstream theme/content selection reads this.
|
|
126
135
|
*/
|
|
127
136
|
customizationEnv: CustomizationEnv;
|
|
128
137
|
/**
|
|
129
|
-
* Per-request CSP nonce
|
|
138
|
+
* Per-request CSP nonce. Placed on the platform's own inline
|
|
130
139
|
* <style>/<script is:inline> tags so a strict CSP can allow them without
|
|
131
140
|
* `unsafe-inline`.
|
|
132
141
|
*/
|
|
133
142
|
cspNonce: string;
|
|
143
|
+
/**
|
|
144
|
+
* The renderer-owned four-stage browser environment
|
|
145
|
+
* (`local|candidate|staged|live`) for this request, computed once by the
|
|
146
|
+
* middleware from authoritative server state. Both document mounts
|
|
147
|
+
* (Layout.astro and `rawHtmlResponse`) serialize THIS object, before any
|
|
148
|
+
* tenant/app code, so it is identical in both. Carries only public values —
|
|
149
|
+
* never a token, binding, or signed URL.
|
|
150
|
+
*/
|
|
151
|
+
browserEnvironment: BrowserEnvironment;
|
|
152
|
+
/**
|
|
153
|
+
* The resolved effective plan (ext-kernel-03) for this request. The
|
|
154
|
+
* fixed-phase render engine (ext-kernel-04) consumes THIS in both document
|
|
155
|
+
* mounts (Layout.astro + rawHtmlResponse), so their renderer-owned phase
|
|
156
|
+
* markup is identical. Environment-only until declaration materialization is
|
|
157
|
+
* wired; carries no secret and no nonce.
|
|
158
|
+
*/
|
|
159
|
+
integrationPlan: EffectivePlan;
|
|
134
160
|
/**
|
|
135
161
|
* Resolved cart/checkout facts for this request (loader src, cart URL,
|
|
136
162
|
* mode). Present only for commerce tenants with a checkout store;
|
|
@@ -161,7 +187,7 @@ declare global {
|
|
|
161
187
|
runtime?: { env: CloudflareEnv };
|
|
162
188
|
/**
|
|
163
189
|
* Every private-app widget placement actually rendered for this request
|
|
164
|
-
* (PrivateApps epic
|
|
190
|
+
* (PrivateApps epic). The middleware seeds this to `[]` before
|
|
165
191
|
* `next()`; each page/layout that renders a widget slot (`renderSlot.ts`)
|
|
166
192
|
* pushes its resolved placements onto it as the page renders, so the
|
|
167
193
|
* middleware can read the full per-request set back out AFTER `next()`
|
|
@@ -169,6 +195,29 @@ declare global {
|
|
|
169
195
|
* the origins that ended up on the page — never more.
|
|
170
196
|
*/
|
|
171
197
|
activeWidgetPlacements?: { endpoint: string }[];
|
|
198
|
+
/**
|
|
199
|
+
* Third-party embed opt-in (EMBED_PROVIDERS catalog slugs) for THIS
|
|
200
|
+
* request, when it must come from a tenant the URL router can't resolve —
|
|
201
|
+
* specifically the candidate renderer (`/preview/render/<tenant>/…`, where
|
|
202
|
+
* `<tenant>` isn't the first path segment). `candidateRender` sets it to the
|
|
203
|
+
* resolved candidate tenant's opt-in; the middleware's embed scan prefers it
|
|
204
|
+
* over the router-resolved tenant's embeds when present. Unset on normal
|
|
205
|
+
* renders (the router-resolved tenant's embeds are authoritative there).
|
|
206
|
+
*/
|
|
207
|
+
embedOptIn?: string[];
|
|
208
|
+
/**
|
|
209
|
+
* The version-scoped integration CSP contribution for THIS request, resolved
|
|
210
|
+
* from the tenant/environment/version effective plan (curated adapter
|
|
211
|
+
* profiles expanded + advanced exact origins merged, deterministic and bound
|
|
212
|
+
* to the plan's `planRevision`). It is plan-scoped server state — resolved
|
|
213
|
+
* before the edge-cache read so its `planRevision` folds into `pageCacheKey`
|
|
214
|
+
* (making a rollback/uninstall a clean warm miss, not a TTL wait) and its
|
|
215
|
+
* `additions` fold into the strict CSP the middleware builds after `next()`,
|
|
216
|
+
* only ever APPENDING reviewed origins to the six contributable directives.
|
|
217
|
+
* Absent when no integration declares CSP — the header and cache key are then
|
|
218
|
+
* byte-identical to a non-integration tenant's (zero cost when disabled).
|
|
219
|
+
*/
|
|
220
|
+
integrationCsp?: CompiledIntegrationCsp;
|
|
172
221
|
}
|
|
173
222
|
}
|
|
174
223
|
}
|
|
@@ -4,23 +4,20 @@ import {
|
|
|
4
4
|
} from "../../../scripts/tenant/materialize-tenant-content.mjs";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* tenant
|
|
7
|
+
* Protect the two intentionally different build modes:
|
|
8
|
+
*
|
|
9
|
+
* - Framework Worker (no TOT_BUILD_TENANTS): tenant content is runtime data,
|
|
10
|
+
* so absent Gitea checkouts are expected and must never block deployment.
|
|
11
|
+
* - Per-tenant static publish (TOT_BUILD_TENANTS set): the named checkout is
|
|
12
|
+
* build input and therefore must be materialized at a pinned ref.
|
|
12
13
|
*
|
|
13
14
|
* TOT_TENANT_REF also assert every stamp is EXACTLY this commit (off-ref → refuse)
|
|
14
15
|
* TOT_ALLOW_UNPINNED=1 tolerate a default-branch (unpinned) materialize
|
|
15
|
-
* TOT_FRAMEWORK_ONLY_BUILD=1
|
|
16
|
-
*
|
|
17
|
-
* content without a pinned Gitea stamp still refuses — this never weakens the
|
|
18
|
-
* deploy path, which materializes first and never sets this.
|
|
16
|
+
* TOT_FRAMEWORK_ONLY_BUILD=1 retained as a backwards-compatible explicit name
|
|
17
|
+
* for framework mode; it is now the default whenever TOT_BUILD_TENANTS is unset.
|
|
19
18
|
* TOT_BUILD_TENANTS comma-separated tenant ids to scope the guard to. A per-tenant
|
|
20
19
|
* STATIC publish (materialize-tenant.mjs) sets this to the single tenant it renders,
|
|
21
|
-
* so a
|
|
22
|
-
* guard every Gitea tenant — the Worker-deploy contract, where all tenants are
|
|
23
|
-
* served from one Worker at once and any unmaterialized tenant IS a real hazard.
|
|
20
|
+
* so a sibling tenant can never block it. Unset ⇒ framework-only Worker build.
|
|
24
21
|
*/
|
|
25
22
|
export function materializeGuard() {
|
|
26
23
|
return {
|
|
@@ -35,12 +32,13 @@ export function materializeGuard() {
|
|
|
35
32
|
.map((t) => t.trim())
|
|
36
33
|
.filter(Boolean);
|
|
37
34
|
const onlyTenants = scoped.length > 0 ? scoped : null;
|
|
38
|
-
|
|
35
|
+
const frameworkOnly = onlyTenants === null || process.env.TOT_FRAMEWORK_ONLY_BUILD === "1";
|
|
36
|
+
if (frameworkOnly) {
|
|
39
37
|
const { problems } = checkPinned(undefined, { expectRef, allowUnpinned, onlyTenants });
|
|
40
38
|
const absent = problems.filter((p) => p.reason === "absent");
|
|
41
39
|
const real = problems.filter((p) => p.reason !== "absent");
|
|
42
40
|
if (absent.length) {
|
|
43
|
-
const msg = `[materialize-guard] framework-only build: ${absent.length} tenant(s) absent (
|
|
41
|
+
const msg = `[materialize-guard] framework-only build: ${absent.length} tenant checkout(s) absent (served from runtime storage): ${absent.map((p) => p.tenant).join(", ")}`;
|
|
44
42
|
if (logger && typeof logger.info === "function") logger.info(msg);
|
|
45
43
|
else console.log(msg);
|
|
46
44
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
CREATE TABLE `candidate_attempts` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`candidate_id` text NOT NULL,
|
|
4
|
+
`tenant_id` text NOT NULL,
|
|
5
|
+
`attempt_number` integer NOT NULL,
|
|
6
|
+
`kind` text NOT NULL,
|
|
7
|
+
`status` text DEFAULT 'pending' NOT NULL,
|
|
8
|
+
`head_sha` text,
|
|
9
|
+
`detail` text,
|
|
10
|
+
`evidence` text,
|
|
11
|
+
`started_at` text NOT NULL,
|
|
12
|
+
`finished_at` text
|
|
13
|
+
);
|
|
14
|
+
--> statement-breakpoint
|
|
15
|
+
CREATE UNIQUE INDEX `uq_candidate_attempts_candidate_number` ON `candidate_attempts` (`candidate_id`,`attempt_number`);--> statement-breakpoint
|
|
16
|
+
CREATE INDEX `idx_candidate_attempts_candidate` ON `candidate_attempts` (`candidate_id`);--> statement-breakpoint
|
|
17
|
+
CREATE INDEX `idx_candidate_attempts_tenant` ON `candidate_attempts` (`tenant_id`);--> statement-breakpoint
|
|
18
|
+
CREATE TABLE `candidates` (
|
|
19
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
20
|
+
`tenant_id` text NOT NULL,
|
|
21
|
+
`repository` text NOT NULL,
|
|
22
|
+
`pr_number` integer NOT NULL,
|
|
23
|
+
`change_id` text NOT NULL,
|
|
24
|
+
`branch` text,
|
|
25
|
+
`title` text,
|
|
26
|
+
`author` text,
|
|
27
|
+
`status` text DEFAULT 'open' NOT NULL,
|
|
28
|
+
`head_sha` text,
|
|
29
|
+
`base_sha` text,
|
|
30
|
+
`created_at` text NOT NULL,
|
|
31
|
+
`updated_at` text NOT NULL
|
|
32
|
+
);
|
|
33
|
+
--> statement-breakpoint
|
|
34
|
+
CREATE UNIQUE INDEX `uq_candidates_tenant_repo_pr` ON `candidates` (`tenant_id`,`repository`,`pr_number`);--> statement-breakpoint
|
|
35
|
+
CREATE UNIQUE INDEX `uq_candidates_tenant_change` ON `candidates` (`tenant_id`,`change_id`);--> statement-breakpoint
|
|
36
|
+
CREATE INDEX `idx_candidates_tenant_status` ON `candidates` (`tenant_id`,`status`);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
CREATE TABLE `consent_cmp_demand` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`tenant_id` text NOT NULL,
|
|
4
|
+
`adapter_id` text NOT NULL,
|
|
5
|
+
`source` text,
|
|
6
|
+
`at` text NOT NULL
|
|
7
|
+
);
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
CREATE UNIQUE INDEX `uq_consent_cmp_demand_tenant_adapter` ON `consent_cmp_demand` (`tenant_id`,`adapter_id`);--> statement-breakpoint
|
|
10
|
+
CREATE INDEX `idx_consent_cmp_demand_adapter` ON `consent_cmp_demand` (`adapter_id`);--> statement-breakpoint
|
|
11
|
+
CREATE TABLE `consent_config_revisions` (
|
|
12
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
13
|
+
`tenant_id` text NOT NULL,
|
|
14
|
+
`revision` integer NOT NULL,
|
|
15
|
+
`config` text NOT NULL,
|
|
16
|
+
`actor` text NOT NULL,
|
|
17
|
+
`note` text,
|
|
18
|
+
`reverted_from` integer,
|
|
19
|
+
`created_at` text NOT NULL
|
|
20
|
+
);
|
|
21
|
+
--> statement-breakpoint
|
|
22
|
+
CREATE UNIQUE INDEX `uq_consent_config_tenant_revision` ON `consent_config_revisions` (`tenant_id`,`revision`);--> statement-breakpoint
|
|
23
|
+
CREATE INDEX `idx_consent_config_tenant` ON `consent_config_revisions` (`tenant_id`);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
CREATE TABLE `correlation_replay` (
|
|
2
|
+
`jti` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`expires_at` integer NOT NULL,
|
|
4
|
+
`consumed_at` text NOT NULL
|
|
5
|
+
);
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
CREATE TABLE `order_attribution` (
|
|
8
|
+
`tenant_id` text NOT NULL,
|
|
9
|
+
`external_order_id` text NOT NULL,
|
|
10
|
+
`attributed` integer DEFAULT 0 NOT NULL,
|
|
11
|
+
`correlation_id` text,
|
|
12
|
+
`correlation_expires_at` text,
|
|
13
|
+
`reason` text,
|
|
14
|
+
`recorded_at` text NOT NULL,
|
|
15
|
+
PRIMARY KEY(`tenant_id`, `external_order_id`)
|
|
16
|
+
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
CREATE TABLE `app_version_snapshots` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`install_id` text NOT NULL,
|
|
4
|
+
`tenant_id` text NOT NULL,
|
|
5
|
+
`seq` integer NOT NULL,
|
|
6
|
+
`app_version` text NOT NULL,
|
|
7
|
+
`facets` text NOT NULL,
|
|
8
|
+
`actor` text NOT NULL,
|
|
9
|
+
`note` text,
|
|
10
|
+
`restored_from_seq` integer,
|
|
11
|
+
`created_at` text NOT NULL
|
|
12
|
+
);
|
|
13
|
+
--> statement-breakpoint
|
|
14
|
+
CREATE UNIQUE INDEX `uq_app_version_snapshots_install_seq` ON `app_version_snapshots` (`install_id`,`seq`);--> statement-breakpoint
|
|
15
|
+
CREATE INDEX `idx_app_version_snapshots_install` ON `app_version_snapshots` (`install_id`);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
CREATE TABLE `candidate_submit_leases` (
|
|
2
|
+
`tenant_id` text NOT NULL,
|
|
3
|
+
`change_id` text NOT NULL,
|
|
4
|
+
`authorization_id` text NOT NULL,
|
|
5
|
+
`status` text DEFAULT 'active' NOT NULL,
|
|
6
|
+
`acquired_at` text NOT NULL,
|
|
7
|
+
`expires_at` text NOT NULL,
|
|
8
|
+
PRIMARY KEY(`tenant_id`, `change_id`)
|
|
9
|
+
);
|
|
10
|
+
--> statement-breakpoint
|
|
11
|
+
CREATE INDEX `idx_candidate_submit_leases_expires` ON `candidate_submit_leases` (`expires_at`);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
CREATE TABLE `integration_migration_drafts` (
|
|
2
|
+
`draft_id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`tenant_id` text NOT NULL,
|
|
4
|
+
`revision` integer NOT NULL,
|
|
5
|
+
`state` text DEFAULT 'open' NOT NULL,
|
|
6
|
+
`record` text NOT NULL,
|
|
7
|
+
`created_at` text NOT NULL,
|
|
8
|
+
`updated_at` text NOT NULL
|
|
9
|
+
);
|
|
10
|
+
--> statement-breakpoint
|
|
11
|
+
CREATE INDEX `idx_integration_migration_drafts_tenant` ON `integration_migration_drafts` (`tenant_id`,`created_at`);--> statement-breakpoint
|
|
12
|
+
ALTER TABLE `app_installs` ADD `managed_kind` text;--> statement-breakpoint
|
|
13
|
+
ALTER TABLE `app_installs` ADD `managed_revision` integer DEFAULT 0 NOT NULL;--> statement-breakpoint
|
|
14
|
+
ALTER TABLE `app_installs` ADD `managed_active_revision_id` text;--> statement-breakpoint
|
|
15
|
+
ALTER TABLE `app_installs` ADD `managed_candidate` text;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
-- WS4 durable, minimized server ledger/outbox. No raw provider payload,
|
|
2
|
+
-- customer identity, browser correlation, credential, or destination data.
|
|
3
|
+
CREATE TABLE `regulated_commerce_provider_events` (
|
|
4
|
+
`provider` text NOT NULL,
|
|
5
|
+
`provider_event_id` text NOT NULL,
|
|
6
|
+
`fingerprint` text NOT NULL,
|
|
7
|
+
`receipt_id` text NOT NULL,
|
|
8
|
+
`received_at` text NOT NULL,
|
|
9
|
+
PRIMARY KEY(`provider`, `provider_event_id`)
|
|
10
|
+
);
|
|
11
|
+
--> statement-breakpoint
|
|
12
|
+
CREATE TABLE `regulated_commerce_provider_orders` (
|
|
13
|
+
`provider` text NOT NULL,
|
|
14
|
+
`provider_order_id` text NOT NULL,
|
|
15
|
+
`tenant_id` text NOT NULL,
|
|
16
|
+
`state` text NOT NULL,
|
|
17
|
+
`provider_event_id` text NOT NULL,
|
|
18
|
+
`updated_at` text NOT NULL,
|
|
19
|
+
PRIMARY KEY(`provider`, `provider_order_id`, `tenant_id`)
|
|
20
|
+
);
|
|
21
|
+
--> statement-breakpoint
|
|
22
|
+
CREATE TABLE `regulated_commerce_intent_outbox` (
|
|
23
|
+
`intent_id` text PRIMARY KEY NOT NULL,
|
|
24
|
+
`tenant_id` text NOT NULL,
|
|
25
|
+
`provider` text NOT NULL,
|
|
26
|
+
`provider_event_id` text NOT NULL,
|
|
27
|
+
`payload` text NOT NULL,
|
|
28
|
+
`created_at` text NOT NULL
|
|
29
|
+
);
|
|
30
|
+
--> statement-breakpoint
|
|
31
|
+
CREATE UNIQUE INDEX `uq_regulated_commerce_outbox_provider_event`
|
|
32
|
+
ON `regulated_commerce_intent_outbox` (`provider`, `provider_event_id`);
|
|
33
|
+
--> statement-breakpoint
|
|
34
|
+
CREATE INDEX `idx_regulated_commerce_outbox_tenant_created`
|
|
35
|
+
ON `regulated_commerce_intent_outbox` (`tenant_id`, `created_at`);
|