lightspeed/platform/foundation

App-platform foundation contracts and composition profiles for M38.

Types

Admin integration provider.

pub type AdminProvider {
  EmbeddedPanel(module: String)
  ExternalBackoffice(module: String)
  MixedAdmin(primary: String, fallback: String)
}

Constructors

  • EmbeddedPanel(module: String)
  • ExternalBackoffice(module: String)
  • MixedAdmin(primary: String, fallback: String)

Admin seam with explicit override point.

pub type AdminSeam {
  AdminSeam(
    provider: AdminProvider,
    override: OverridePoint,
    audit_sink_module: String,
    break_glass_role: String,
    approval_workflow_required: Bool,
  )
}

Constructors

  • AdminSeam(
      provider: AdminProvider,
      override: OverridePoint,
      audit_sink_module: String,
      break_glass_role: String,
      approval_workflow_required: Bool,
    )

One production-shaped app-platform profile.

pub type AppProfile {
  AppProfile(
    name: String,
    auth: AuthSeam,
    admin: AdminSeam,
    policy: PolicySeam,
    billing: BillingSeam,
    surfaces: List(ProductSurface),
    workflows: List(LifecycleWorkflow),
    requires_framework_internal_patching: Bool,
  )
}

Constructors

Authentication integration provider.

pub type AuthProvider {
  FirstParty(module: String)
  Oidc(module: String)
  Hybrid(primary: String, fallback: String)
}

Constructors

  • FirstParty(module: String)
  • Oidc(module: String)
  • Hybrid(primary: String, fallback: String)

Auth seam with explicit override point.

pub type AuthSeam {
  AuthSeam(
    provider: AuthProvider,
    override: OverridePoint,
    session_ttl_minutes: Int,
    mfa_required: Bool,
    passkey_enabled: Bool,
  )
}

Constructors

  • AuthSeam(
      provider: AuthProvider,
      override: OverridePoint,
      session_ttl_minutes: Int,
      mfa_required: Bool,
      passkey_enabled: Bool,
    )

Billing integration provider.

pub type BillingProvider {
  Stripe(module: String)
  Paddle(module: String)
  MixedBilling(primary: String, fallback: String)
}

Constructors

  • Stripe(module: String)
  • Paddle(module: String)
  • MixedBilling(primary: String, fallback: String)

Billing seam with explicit override point.

pub type BillingSeam {
  BillingSeam(
    provider: BillingProvider,
    override: OverridePoint,
    metering_source: MeteringSource,
    webhook_verification: Bool,
    dunning_enabled: Bool,
  )
}

Constructors

Core app-platform lifecycle workflow.

pub type LifecycleWorkflow {
  AccountSignupActivation
  SubscriptionUpgrade
  AdminApprovalEscalation
  TenantPolicyReview
}

Constructors

  • AccountSignupActivation
  • SubscriptionUpgrade
  • AdminApprovalEscalation
  • TenantPolicyReview

Metering projection source.

pub type MeteringSource {
  EventLog(module: String)
  UsagePipeline(module: String)
  HybridMetering(primary: String, fallback: String)
}

Constructors

  • EventLog(module: String)
  • UsagePipeline(module: String)
  • HybridMetering(primary: String, fallback: String)

Explicit app-platform override contract.

pub type OverridePoint {
  Hook(module: String, hook: String)
  Adapter(module: String)
  RouteNamespace(module: String, namespace: String)
}

Constructors

  • Hook(module: String, hook: String)
  • Adapter(module: String)
  • RouteNamespace(module: String, namespace: String)

Policy integration provider.

pub type PolicyProvider {
  RoleBased(module: String)
  AttributeBased(module: String)
  MixedPolicy(primary: String, fallback: String)
}

Constructors

  • RoleBased(module: String)
  • AttributeBased(module: String)
  • MixedPolicy(primary: String, fallback: String)

Policy seam with explicit override point.

pub type PolicySeam {
  PolicySeam(
    provider: PolicyProvider,
    override: OverridePoint,
    tenant_scoped: Bool,
    deny_by_default: Bool,
    decision_trace_enabled: Bool,
  )
}

Constructors

  • PolicySeam(
      provider: PolicyProvider,
      override: OverridePoint,
      tenant_scoped: Bool,
      deny_by_default: Bool,
      decision_trace_enabled: Bool,
    )

Product-application surface.

pub type ProductSurface {
  CustomerPortal
  AdminConsole
  PublicApi
  PartnerApi
  OperationsConsole
}

Constructors

  • CustomerPortal
  • AdminConsole
  • PublicApi
  • PartnerApi
  • OperationsConsole

Values

pub fn admin_provider_label(provider: AdminProvider) -> String

Admin-provider label.

pub fn auth_provider_label(provider: AuthProvider) -> String

Auth-provider label.

pub fn b2b_saas_profile() -> AppProfile

B2B SaaS profile.

pub fn billing_provider_label(
  provider: BillingProvider,
) -> String

Billing-provider label.

pub fn explicit_override_points(profile: AppProfile) -> Bool

All seams have explicit and external override points.

pub fn marketplace_profile() -> AppProfile

Marketplace profile with partner surface.

pub fn metering_source_label(source: MeteringSource) -> String

Metering-source label.

pub fn name(profile: AppProfile) -> String

Profile name accessor.

pub fn operations_platform_profile() -> AppProfile

Operations-heavy product profile.

pub fn override_point_label(value: OverridePoint) -> String

Override-point label.

pub fn policy_provider_label(provider: PolicyProvider) -> String

Policy-provider label.

pub fn reference_profiles() -> List(AppProfile)

Reference M38 product profiles.

pub fn required_workflows() -> List(LifecycleWorkflow)

Required core workflows for M38 conformance.

pub fn requires_framework_internal_patching(
  profile: AppProfile,
) -> Bool

Whether profile requires framework-internal patching.

pub fn seam_contract_signature(profile: AppProfile) -> String

Stable integration-seam signature for extension contracts.

pub fn signature(profile: AppProfile) -> String

Stable profile signature.

pub fn supports_workflow(
  profile: AppProfile,
  workflow: LifecycleWorkflow,
) -> Bool

Check whether one workflow is supported by one profile.

pub fn surface_label(surface: ProductSurface) -> String

Product-surface label.

pub fn surfaces(profile: AppProfile) -> List(ProductSurface)

Profile surfaces accessor.

pub fn valid(profile: AppProfile) -> Bool

Validate one app-platform profile.

pub fn workflow_label(workflow: LifecycleWorkflow) -> String

Workflow label.

pub fn workflow_matrix_signature(profile: AppProfile) -> String

Stable workflow matrix signature.

pub fn workflow_runs_without_internal_patching(
  profile: AppProfile,
  workflow: LifecycleWorkflow,
) -> Bool

Verify one workflow can run through explicit seams without framework patching.

pub fn workflows(profile: AppProfile) -> List(LifecycleWorkflow)

Profile workflows accessor.

Search Document