Current section
Files
Jump to
Current section
Files
src/lightspeed/platform/turnkey_presets.gleam
//// Turnkey app-platform defaults and presets contracts for M58.
import gleam/int
import gleam/list
import gleam/string
pub const snapshot_version = 1
/// Override seam for one platform domain.
pub type PresetSeam {
AuthSeam
AdminSeam
BillingSeam
PolicySeam
EmailSeam
QueueSeam
}
/// Explicit override seam contract.
pub type OverrideHook {
OverrideHook(
seam: PresetSeam,
module: String,
hook: String,
rationale: String,
)
}
/// Secure auth defaults.
pub type AuthDefaults {
AuthDefaults(
provider_module: String,
session_ttl_minutes: Int,
mfa_required: Bool,
passkeys_required: Bool,
password_min_length: Int,
)
}
/// Secure admin defaults.
pub type AdminDefaults {
AdminDefaults(
provider_module: String,
audit_sink_module: String,
approval_required: Bool,
break_glass_role: String,
)
}
/// Secure billing defaults.
pub type BillingDefaults {
BillingDefaults(
provider_module: String,
webhook_verification: Bool,
dunning_enabled: Bool,
idempotency_required: Bool,
)
}
/// Secure policy defaults.
pub type PolicyDefaults {
PolicyDefaults(
provider_module: String,
deny_by_default: Bool,
tenant_scoped: Bool,
decision_trace_enabled: Bool,
)
}
/// Secure email defaults.
pub type EmailDefaults {
EmailDefaults(
provider_module: String,
domain_authentication_required: Bool,
suppression_list_enabled: Bool,
signed_templates_required: Bool,
)
}
/// Secure queue defaults.
pub type QueueDefaults {
QueueDefaults(
provider_module: String,
max_attempts: Int,
dead_letter_enabled: Bool,
idempotency_required: Bool,
replay_checkpoint_required: Bool,
)
}
/// Production-shaped starter preset.
pub type StarterPreset {
StarterPreset(
name: String,
scaffold_command: String,
auth: AuthDefaults,
admin: AdminDefaults,
billing: BillingDefaults,
policy: PolicyDefaults,
email: EmailDefaults,
queue: QueueDefaults,
override_hooks: List(OverrideHook),
requires_framework_internal_edits: Bool,
)
}
/// Critical platform flow certified by deterministic fixtures.
pub type CriticalFlow {
SignupWithMfaFlow
AdminBreakGlassApprovalFlow
BillingWebhookReconciliationFlow
PolicyDeniedAuditTrailFlow
EmailVerificationDeliveryFlow
QueueReplayRecoveryFlow
}
/// Deterministic reference app scenario for M58.
pub type ReferenceScenario {
ReferenceScenario(
name: String,
preset: StarterPreset,
flows: List(CriticalFlow),
seed: String,
)
}
/// Stable M58 profile version label.
pub fn profile_version_label() -> String {
"m58.profile.v" <> int.to_string(snapshot_version)
}
/// Secure SaaS starter preset.
pub fn secure_saas_preset() -> StarterPreset {
StarterPreset(
name: "secure_saas",
scaffold_command: "lightspeed new acme_portal --preset secure_saas",
auth: AuthDefaults(
provider_module: "MyApp.Auth.Password",
session_ttl_minutes: 480,
mfa_required: True,
passkeys_required: True,
password_min_length: 14,
),
admin: AdminDefaults(
provider_module: "MyApp.Admin.Console",
audit_sink_module: "MyApp.Admin.AuditSink",
approval_required: True,
break_glass_role: "platform_admin",
),
billing: BillingDefaults(
provider_module: "MyApp.Billing.Stripe",
webhook_verification: True,
dunning_enabled: True,
idempotency_required: True,
),
policy: PolicyDefaults(
provider_module: "MyApp.Policy.Rbac",
deny_by_default: True,
tenant_scoped: True,
decision_trace_enabled: True,
),
email: EmailDefaults(
provider_module: "MyApp.Email.Transactional",
domain_authentication_required: True,
suppression_list_enabled: True,
signed_templates_required: True,
),
queue: QueueDefaults(
provider_module: "MyApp.Queue.Worker",
max_attempts: 6,
dead_letter_enabled: True,
idempotency_required: True,
replay_checkpoint_required: True,
),
override_hooks: default_override_hooks(),
requires_framework_internal_edits: False,
)
}
/// Secure marketplace starter preset.
pub fn secure_marketplace_preset() -> StarterPreset {
StarterPreset(
name: "secure_marketplace",
scaffold_command: "lightspeed new market_hub --preset secure_marketplace",
auth: AuthDefaults(
provider_module: "MyApp.Auth.Oidc",
session_ttl_minutes: 360,
mfa_required: True,
passkeys_required: True,
password_min_length: 12,
),
admin: AdminDefaults(
provider_module: "MyApp.Admin.Backoffice",
audit_sink_module: "MyApp.Admin.AuditSink",
approval_required: True,
break_glass_role: "market_admin",
),
billing: BillingDefaults(
provider_module: "MyApp.Billing.Hybrid",
webhook_verification: True,
dunning_enabled: True,
idempotency_required: True,
),
policy: PolicyDefaults(
provider_module: "MyApp.Policy.Abac",
deny_by_default: True,
tenant_scoped: True,
decision_trace_enabled: True,
),
email: EmailDefaults(
provider_module: "MyApp.Email.Transactional",
domain_authentication_required: True,
suppression_list_enabled: True,
signed_templates_required: True,
),
queue: QueueDefaults(
provider_module: "MyApp.Queue.Worker",
max_attempts: 5,
dead_letter_enabled: True,
idempotency_required: True,
replay_checkpoint_required: True,
),
override_hooks: default_override_hooks(),
requires_framework_internal_edits: False,
)
}
/// Secure operations-heavy starter preset.
pub fn secure_operations_preset() -> StarterPreset {
StarterPreset(
name: "secure_operations",
scaffold_command: "lightspeed new ops_center --preset secure_operations",
auth: AuthDefaults(
provider_module: "MyApp.Auth.Password",
session_ttl_minutes: 720,
mfa_required: True,
passkeys_required: True,
password_min_length: 16,
),
admin: AdminDefaults(
provider_module: "MyApp.Admin.Console",
audit_sink_module: "MyApp.Admin.AuditSink",
approval_required: True,
break_glass_role: "ops_super_admin",
),
billing: BillingDefaults(
provider_module: "MyApp.Billing.Paddle",
webhook_verification: True,
dunning_enabled: True,
idempotency_required: True,
),
policy: PolicyDefaults(
provider_module: "MyApp.Policy.Rbac",
deny_by_default: True,
tenant_scoped: True,
decision_trace_enabled: True,
),
email: EmailDefaults(
provider_module: "MyApp.Email.Transactional",
domain_authentication_required: True,
suppression_list_enabled: True,
signed_templates_required: True,
),
queue: QueueDefaults(
provider_module: "MyApp.Queue.Worker",
max_attempts: 8,
dead_letter_enabled: True,
idempotency_required: True,
replay_checkpoint_required: True,
),
override_hooks: default_override_hooks(),
requires_framework_internal_edits: False,
)
}
/// Deterministic M58 reference presets.
pub fn reference_presets() -> List(StarterPreset) {
[
secure_saas_preset(),
secure_marketplace_preset(),
secure_operations_preset(),
]
}
/// Required critical flows for M58 certification.
pub fn required_critical_flows() -> List(CriticalFlow) {
[
SignupWithMfaFlow,
AdminBreakGlassApprovalFlow,
BillingWebhookReconciliationFlow,
PolicyDeniedAuditTrailFlow,
EmailVerificationDeliveryFlow,
QueueReplayRecoveryFlow,
]
}
/// Deterministic reference scenarios for fixture certification.
pub fn reference_scenarios() -> List(ReferenceScenario) {
let flows = required_critical_flows()
[
ReferenceScenario(
name: "saas_secure_baseline",
preset: secure_saas_preset(),
flows: flows,
seed: "m58-saas-001",
),
ReferenceScenario(
name: "marketplace_secure_baseline",
preset: secure_marketplace_preset(),
flows: flows,
seed: "m58-market-001",
),
ReferenceScenario(
name: "operations_secure_baseline",
preset: secure_operations_preset(),
flows: flows,
seed: "m58-ops-001",
),
]
}
/// Preset name accessor.
pub fn name(preset: StarterPreset) -> String {
preset.name
}
/// One-command scaffold accessor.
pub fn scaffold_command(preset: StarterPreset) -> String {
preset.scaffold_command
}
/// Override hooks accessor.
pub fn override_hooks(preset: StarterPreset) -> List(OverrideHook) {
preset.override_hooks
}
/// Framework-internal-edits accessor.
pub fn requires_framework_internal_edits(preset: StarterPreset) -> Bool {
preset.requires_framework_internal_edits
}
/// Scenario name accessor.
pub fn scenario_name(scenario: ReferenceScenario) -> String {
scenario.name
}
/// Scenario flows accessor.
pub fn scenario_flows(scenario: ReferenceScenario) -> List(CriticalFlow) {
scenario.flows
}
/// Scenario preset accessor.
pub fn scenario_preset(scenario: ReferenceScenario) -> StarterPreset {
scenario.preset
}
/// Critical flow label.
pub fn flow_label(flow: CriticalFlow) -> String {
case flow {
SignupWithMfaFlow -> "signup_with_mfa"
AdminBreakGlassApprovalFlow -> "admin_break_glass_approval"
BillingWebhookReconciliationFlow -> "billing_webhook_reconciliation"
PolicyDeniedAuditTrailFlow -> "policy_denied_audit_trail"
EmailVerificationDeliveryFlow -> "email_verification_delivery"
QueueReplayRecoveryFlow -> "queue_replay_recovery"
}
}
/// Override seam label.
pub fn seam_label(seam: PresetSeam) -> String {
case seam {
AuthSeam -> "auth"
AdminSeam -> "admin"
BillingSeam -> "billing"
PolicySeam -> "policy"
EmailSeam -> "email"
QueueSeam -> "queue"
}
}
/// Build one override hook.
pub fn override_hook(
seam: PresetSeam,
module: String,
hook: String,
rationale: String,
) -> OverrideHook {
OverrideHook(seam: seam, module: module, hook: hook, rationale: rationale)
}
/// Add one override hook when missing.
pub fn with_override_hook(
preset: StarterPreset,
new_hook: OverrideHook,
) -> StarterPreset {
StarterPreset(
..preset,
override_hooks: append_override_if_missing(preset.override_hooks, new_hook),
)
}
/// Validate one starter preset contract.
pub fn valid(preset: StarterPreset) -> Bool {
preset.name != ""
&& starter_scaffold_ready(preset)
&& auth_valid(preset.auth)
&& admin_valid(preset.admin)
&& billing_valid(preset.billing)
&& policy_valid(preset.policy)
&& email_valid(preset.email)
&& queue_valid(preset.queue)
&& override_hooks_valid(preset.override_hooks)
&& has_explicit_override_seams(preset)
}
/// True when secure defaults are prewired.
pub fn secure_defaults(preset: StarterPreset) -> Bool {
preset.auth.mfa_required
&& preset.auth.passkeys_required
&& preset.auth.password_min_length >= 12
&& preset.admin.approval_required
&& preset.admin.break_glass_role != ""
&& preset.billing.webhook_verification
&& preset.billing.idempotency_required
&& preset.policy.deny_by_default
&& preset.policy.tenant_scoped
&& preset.policy.decision_trace_enabled
&& preset.email.domain_authentication_required
&& preset.email.signed_templates_required
&& preset.email.suppression_list_enabled
&& preset.queue.dead_letter_enabled
&& preset.queue.idempotency_required
&& preset.queue.replay_checkpoint_required
}
/// True when scaffold command represents one safe starter invocation.
pub fn starter_scaffold_ready(preset: StarterPreset) -> Bool {
let command = preset.scaffold_command
command != ""
&& string.starts_with(command, "lightspeed new ")
&& string.length(command) > 20
&& !string.contains(command, "&&")
&& !string.contains(command, "||")
&& !string.contains(command, ";")
&& !string.contains(command, "|")
}
/// True when overrides avoid framework internals edits.
pub fn override_without_internal_edits(preset: StarterPreset) -> Bool {
!preset.requires_framework_internal_edits
&& hooks_external(preset.override_hooks)
}
/// True when every seam has at least one explicit override hook.
pub fn has_explicit_override_seams(preset: StarterPreset) -> Bool {
seam_present(preset.override_hooks, AuthSeam)
&& seam_present(preset.override_hooks, AdminSeam)
&& seam_present(preset.override_hooks, BillingSeam)
&& seam_present(preset.override_hooks, PolicySeam)
&& seam_present(preset.override_hooks, EmailSeam)
&& seam_present(preset.override_hooks, QueueSeam)
}
/// True when one preset is ready as secure turnkey baseline.
pub fn scaffoldable_secure_baseline(preset: StarterPreset) -> Bool {
valid(preset)
&& secure_defaults(preset)
&& override_without_internal_edits(preset)
}
/// True when one critical flow is supported by preset defaults.
pub fn supports_flow(preset: StarterPreset, flow: CriticalFlow) -> Bool {
case flow {
SignupWithMfaFlow ->
preset.auth.mfa_required
&& preset.auth.passkeys_required
&& preset.auth.password_min_length >= 12
AdminBreakGlassApprovalFlow ->
preset.admin.approval_required
&& preset.admin.break_glass_role != ""
&& preset.admin.audit_sink_module != ""
BillingWebhookReconciliationFlow ->
preset.billing.webhook_verification
&& preset.billing.idempotency_required
&& preset.billing.dunning_enabled
PolicyDeniedAuditTrailFlow ->
preset.policy.deny_by_default
&& preset.policy.tenant_scoped
&& preset.policy.decision_trace_enabled
EmailVerificationDeliveryFlow ->
preset.email.domain_authentication_required
&& preset.email.suppression_list_enabled
&& preset.email.signed_templates_required
QueueReplayRecoveryFlow ->
preset.queue.dead_letter_enabled
&& preset.queue.idempotency_required
&& preset.queue.replay_checkpoint_required
&& preset.queue.max_attempts >= 3
}
}
/// True when one reference scenario is certified.
pub fn scenario_certified(scenario: ReferenceScenario) -> Bool {
scenario.name != ""
&& scenario.seed != ""
&& scaffoldable_secure_baseline(scenario.preset)
&& flow_list_supported(scenario.preset, scenario.flows)
}
/// Stable override surface signature for one preset.
pub fn override_surface_signature(preset: StarterPreset) -> String {
let entries = list.map(preset.override_hooks, override_hook_label)
join_with(",", entries)
}
/// Stable critical-flow support signature for one preset.
pub fn critical_flow_signature(preset: StarterPreset) -> String {
let entries =
list.map(required_critical_flows(), fn(flow) {
flow_label(flow) <> "=" <> bool_label(supports_flow(preset, flow))
})
join_with(",", entries)
}
/// Stable preset signature.
pub fn signature(preset: StarterPreset) -> String {
"preset:"
<> preset.name
<> "|scaffold="
<> preset.scaffold_command
<> "|auth="
<> auth_signature(preset.auth)
<> "|admin="
<> admin_signature(preset.admin)
<> "|billing="
<> billing_signature(preset.billing)
<> "|policy="
<> policy_signature(preset.policy)
<> "|email="
<> email_signature(preset.email)
<> "|queue="
<> queue_signature(preset.queue)
<> "|override_surface="
<> override_surface_signature(preset)
<> "|internal_edits="
<> bool_label(preset.requires_framework_internal_edits)
}
/// Stable scenario signature.
pub fn scenario_signature(scenario: ReferenceScenario) -> String {
"scenario:"
<> scenario.name
<> "|seed="
<> scenario.seed
<> "|preset="
<> signature(scenario.preset)
<> "|flows="
<> critical_flow_signature(scenario.preset)
}
/// Deterministic fixture snapshots for M58 drift gates.
pub fn fixture_snapshots() -> List(#(String, String)) {
list.map(reference_presets(), fn(preset) { #(preset.name, signature(preset)) })
}
/// Deterministic M58 snapshot signature.
pub fn snapshot_signature() -> String {
let entries =
list.map(fixture_snapshots(), fn(entry) {
let #(label, value) = entry
label <> "=" <> value
})
profile_version_label() <> "|" <> join_with(";", entries)
}
fn default_override_hooks() -> List(OverrideHook) {
[
override_hook(
AuthSeam,
"MyApp.Platform.AuthOverrides",
"resolve_login_policy",
"adapt login/session controls for external identity boundaries",
),
override_hook(
AdminSeam,
"MyApp.Platform.AdminOverrides",
"authorize_break_glass",
"require org-specific approval constraints for admin escalation",
),
override_hook(
BillingSeam,
"MyApp.Platform.BillingOverrides",
"transform_invoice_webhook",
"map provider webhook payloads to tenant billing policy",
),
override_hook(
PolicySeam,
"MyApp.Platform.PolicyOverrides",
"resolve_policy_context",
"inject domain scope attributes for policy decisions",
),
override_hook(
EmailSeam,
"MyApp.Platform.EmailOverrides",
"customize_delivery_channel",
"route signed templates through tenant delivery controls",
),
override_hook(
QueueSeam,
"MyApp.Platform.QueueOverrides",
"route_retry_backoff",
"map retry strategy to tenant/class-specific queue policy",
),
]
}
fn flow_list_supported(
preset: StarterPreset,
flows: List(CriticalFlow),
) -> Bool {
case flows {
[] -> True
[flow, ..rest] ->
supports_flow(preset, flow) && flow_list_supported(preset, rest)
}
}
fn append_override_if_missing(
overrides: List(OverrideHook),
new_hook: OverrideHook,
) -> List(OverrideHook) {
case overrides {
[] -> [new_hook]
[existing, ..rest] ->
case override_hook_equal(existing, new_hook) {
True -> overrides
False -> [existing, ..append_override_if_missing(rest, new_hook)]
}
}
}
fn override_hook_equal(left: OverrideHook, right: OverrideHook) -> Bool {
left.seam == right.seam
&& left.module == right.module
&& left.hook == right.hook
}
fn auth_valid(defaults: AuthDefaults) -> Bool {
defaults.provider_module != ""
&& defaults.session_ttl_minutes >= 60
&& defaults.password_min_length >= 12
}
fn admin_valid(defaults: AdminDefaults) -> Bool {
defaults.provider_module != ""
&& defaults.audit_sink_module != ""
&& defaults.break_glass_role != ""
}
fn billing_valid(defaults: BillingDefaults) -> Bool {
defaults.provider_module != ""
&& defaults.webhook_verification
&& defaults.idempotency_required
}
fn policy_valid(defaults: PolicyDefaults) -> Bool {
defaults.provider_module != ""
&& defaults.deny_by_default
&& defaults.tenant_scoped
}
fn email_valid(defaults: EmailDefaults) -> Bool {
defaults.provider_module != ""
&& defaults.domain_authentication_required
&& defaults.signed_templates_required
}
fn queue_valid(defaults: QueueDefaults) -> Bool {
defaults.provider_module != ""
&& defaults.max_attempts >= 3
&& defaults.dead_letter_enabled
&& defaults.idempotency_required
}
fn override_hooks_valid(overrides: List(OverrideHook)) -> Bool {
case overrides {
[] -> True
[override, ..rest] ->
override_hook_valid(override) && override_hooks_valid(rest)
}
}
fn override_hook_valid(override: OverrideHook) -> Bool {
override.module != "" && override.hook != "" && override.rationale != ""
}
fn hooks_external(overrides: List(OverrideHook)) -> Bool {
case overrides {
[] -> True
[override, ..rest] ->
override_module_external(override.module) && hooks_external(rest)
}
}
fn override_module_external(module: String) -> Bool {
!string.contains(module, "lightspeed/framework")
&& !string.contains(module, "lightspeed/component")
&& !string.contains(module, "lightspeed/platform")
}
fn seam_present(overrides: List(OverrideHook), seam: PresetSeam) -> Bool {
case overrides {
[] -> False
[override, ..rest] ->
case override.seam == seam {
True -> True
False -> seam_present(rest, seam)
}
}
}
fn override_hook_label(override: OverrideHook) -> String {
seam_label(override.seam) <> ":" <> override.module <> "#" <> override.hook
}
fn auth_signature(defaults: AuthDefaults) -> String {
defaults.provider_module
<> ":ttl="
<> int.to_string(defaults.session_ttl_minutes)
<> ":mfa="
<> bool_label(defaults.mfa_required)
<> ":passkeys="
<> bool_label(defaults.passkeys_required)
<> ":pwd_min="
<> int.to_string(defaults.password_min_length)
}
fn admin_signature(defaults: AdminDefaults) -> String {
defaults.provider_module
<> ":audit="
<> defaults.audit_sink_module
<> ":approval="
<> bool_label(defaults.approval_required)
<> ":break_glass="
<> defaults.break_glass_role
}
fn billing_signature(defaults: BillingDefaults) -> String {
defaults.provider_module
<> ":webhook="
<> bool_label(defaults.webhook_verification)
<> ":dunning="
<> bool_label(defaults.dunning_enabled)
<> ":idempotency="
<> bool_label(defaults.idempotency_required)
}
fn policy_signature(defaults: PolicyDefaults) -> String {
defaults.provider_module
<> ":deny_by_default="
<> bool_label(defaults.deny_by_default)
<> ":tenant_scoped="
<> bool_label(defaults.tenant_scoped)
<> ":trace="
<> bool_label(defaults.decision_trace_enabled)
}
fn email_signature(defaults: EmailDefaults) -> String {
defaults.provider_module
<> ":domain_auth="
<> bool_label(defaults.domain_authentication_required)
<> ":suppression_list="
<> bool_label(defaults.suppression_list_enabled)
<> ":signed_templates="
<> bool_label(defaults.signed_templates_required)
}
fn queue_signature(defaults: QueueDefaults) -> String {
defaults.provider_module
<> ":max_attempts="
<> int.to_string(defaults.max_attempts)
<> ":dead_letter="
<> bool_label(defaults.dead_letter_enabled)
<> ":idempotency="
<> bool_label(defaults.idempotency_required)
<> ":replay_checkpoint="
<> bool_label(defaults.replay_checkpoint_required)
}
fn bool_label(value: Bool) -> String {
case value {
True -> "true"
False -> "false"
}
}
fn join_with(separator: String, values: List(String)) -> String {
case values {
[] -> ""
[first, ..rest] ->
list.fold(rest, first, fn(accumulator, value) {
accumulator <> separator <> value
})
}
}