-module(lightspeed@platform@foundation). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lightspeed/platform/foundation.gleam"). -export([required_workflows/0, b2b_saas_profile/0, marketplace_profile/0, operations_platform_profile/0, reference_profiles/0, explicit_override_points/1, valid/1, requires_framework_internal_patching/1, supports_workflow/2, workflow_runs_without_internal_patching/2, name/1, surfaces/1, workflows/1, workflow_label/1, surface_label/1, metering_source_label/1, override_point_label/1, billing_provider_label/1, policy_provider_label/1, admin_provider_label/1, auth_provider_label/1, signature/1, seam_contract_signature/1, workflow_matrix_signature/1]). -export_type([override_point/0, auth_provider/0, admin_provider/0, policy_provider/0, billing_provider/0, metering_source/0, auth_seam/0, admin_seam/0, policy_seam/0, billing_seam/0, product_surface/0, lifecycle_workflow/0, app_profile/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" App-platform foundation contracts and composition profiles for M38.\n"). -type override_point() :: {hook, binary(), binary()} | {adapter, binary()} | {route_namespace, binary(), binary()}. -type auth_provider() :: {first_party, binary()} | {oidc, binary()} | {hybrid, binary(), binary()}. -type admin_provider() :: {embedded_panel, binary()} | {external_backoffice, binary()} | {mixed_admin, binary(), binary()}. -type policy_provider() :: {role_based, binary()} | {attribute_based, binary()} | {mixed_policy, binary(), binary()}. -type billing_provider() :: {stripe, binary()} | {paddle, binary()} | {mixed_billing, binary(), binary()}. -type metering_source() :: {event_log, binary()} | {usage_pipeline, binary()} | {hybrid_metering, binary(), binary()}. -type auth_seam() :: {auth_seam, auth_provider(), override_point(), integer(), boolean(), boolean()}. -type admin_seam() :: {admin_seam, admin_provider(), override_point(), binary(), binary(), boolean()}. -type policy_seam() :: {policy_seam, policy_provider(), override_point(), boolean(), boolean(), boolean()}. -type billing_seam() :: {billing_seam, billing_provider(), override_point(), metering_source(), boolean(), boolean()}. -type product_surface() :: customer_portal | admin_console | public_api | partner_api | operations_console. -type lifecycle_workflow() :: account_signup_activation | subscription_upgrade | admin_approval_escalation | tenant_policy_review. -type app_profile() :: {app_profile, binary(), auth_seam(), admin_seam(), policy_seam(), billing_seam(), list(product_surface()), list(lifecycle_workflow()), boolean()}. -file("src/lightspeed/platform/foundation.gleam", 287). ?DOC(" Required core workflows for M38 conformance.\n"). -spec required_workflows() -> list(lifecycle_workflow()). required_workflows() -> [account_signup_activation, subscription_upgrade, admin_approval_escalation, tenant_policy_review]. -file("src/lightspeed/platform/foundation.gleam", 125). ?DOC(" B2B SaaS profile.\n"). -spec b2b_saas_profile() -> app_profile(). b2b_saas_profile() -> {app_profile, <<"b2b_saas"/utf8>>, {auth_seam, {hybrid, <<"MyApp.Auth.Password"/utf8>>, <<"MyApp.Auth.Oidc"/utf8>>}, {hook, <<"MyApp.AuthHooks"/utf8>>, <<"resolve_session_context"/utf8>>}, 480, true, true}, {admin_seam, {embedded_panel, <<"MyApp.Admin.Panel"/utf8>>}, {route_namespace, <<"MyApp.AdminRouter"/utf8>>, <<"/admin"/utf8>>}, <<"MyApp.AdminAudit"/utf8>>, <<"platform_admin"/utf8>>, true}, {policy_seam, {mixed_policy, <<"MyApp.Policy.Rbac"/utf8>>, <<"MyApp.Policy.Abac"/utf8>>}, {adapter, <<"MyApp.PolicyAdapter"/utf8>>}, true, true, true}, {billing_seam, {stripe, <<"MyApp.Billing.Stripe"/utf8>>}, {hook, <<"MyApp.BillingHooks"/utf8>>, <<"transform_invoice_event"/utf8>>}, {usage_pipeline, <<"MyApp.BillingUsagePipeline"/utf8>>}, true, true}, [customer_portal, admin_console, public_api, operations_console], required_workflows(), false}. -file("src/lightspeed/platform/foundation.gleam", 177). ?DOC(" Marketplace profile with partner surface.\n"). -spec marketplace_profile() -> app_profile(). marketplace_profile() -> {app_profile, <<"marketplace"/utf8>>, {auth_seam, {oidc, <<"MyApp.Auth.Oidc"/utf8>>}, {adapter, <<"MyApp.AuthProviderAdapter"/utf8>>}, 240, true, false}, {admin_seam, {mixed_admin, <<"MyApp.Admin.Panel"/utf8>>, <<"MyApp.Admin.Backoffice"/utf8>>}, {hook, <<"MyApp.AdminHooks"/utf8>>, <<"authorize_bulk_action"/utf8>>}, <<"MyApp.AdminAudit"/utf8>>, <<"marketplace_admin"/utf8>>, true}, {policy_seam, {attribute_based, <<"MyApp.Policy.Abac"/utf8>>}, {route_namespace, <<"MyApp.PolicyRoutes"/utf8>>, <<"/policy"/utf8>>}, true, true, true}, {billing_seam, {mixed_billing, <<"MyApp.Billing.Stripe"/utf8>>, <<"MyApp.Billing.Paddle"/utf8>>}, {adapter, <<"MyApp.BillingAdapter"/utf8>>}, {hybrid_metering, <<"MyApp.BillingUsagePipeline"/utf8>>, <<"MyApp.BillingReplay"/utf8>>}, true, true}, [customer_portal, admin_console, public_api, partner_api, operations_console], required_workflows(), false}. -file("src/lightspeed/platform/foundation.gleam", 233). ?DOC(" Operations-heavy product profile.\n"). -spec operations_platform_profile() -> app_profile(). operations_platform_profile() -> {app_profile, <<"operations_platform"/utf8>>, {auth_seam, {first_party, <<"MyApp.Auth.Password"/utf8>>}, {route_namespace, <<"MyApp.AuthRoutes"/utf8>>, <<"/auth"/utf8>>}, 720, true, true}, {admin_seam, {external_backoffice, <<"MyApp.Admin.Backoffice"/utf8>>}, {adapter, <<"MyApp.AdminAdapter"/utf8>>}, <<"MyApp.AdminAudit"/utf8>>, <<"ops_super_admin"/utf8>>, true}, {policy_seam, {role_based, <<"MyApp.Policy.Rbac"/utf8>>}, {hook, <<"MyApp.PolicyHooks"/utf8>>, <<"annotate_denial_reason"/utf8>>}, true, true, true}, {billing_seam, {paddle, <<"MyApp.Billing.Paddle"/utf8>>}, {route_namespace, <<"MyApp.BillingRoutes"/utf8>>, <<"/billing"/utf8>>}, {event_log, <<"MyApp.BillingEventLog"/utf8>>}, true, true}, [customer_portal, admin_console, public_api, operations_console], required_workflows(), false}. -file("src/lightspeed/platform/foundation.gleam", 282). ?DOC(" Reference M38 product profiles.\n"). -spec reference_profiles() -> list(app_profile()). reference_profiles() -> [b2b_saas_profile(), marketplace_profile(), operations_platform_profile()]. -file("src/lightspeed/platform/foundation.gleam", 646). -spec module_external(binary()) -> boolean(). module_external(Module_name) -> ((Module_name /= <<""/utf8>>) andalso not gleam_stdlib:contains_string( Module_name, <<"lightspeed/framework"/utf8>> )) andalso not gleam_stdlib:contains_string( Module_name, <<"lightspeed/component"/utf8>> ). -file("src/lightspeed/platform/foundation.gleam", 572). -spec override_point_valid(override_point()) -> boolean(). override_point_valid(Value) -> case Value of {hook, Module, Hook} -> module_external(Module) andalso (Hook /= <<""/utf8>>); {adapter, Module@1} -> module_external(Module@1); {route_namespace, Module@2, Namespace} -> module_external(Module@2) andalso (Namespace /= <<""/utf8>>) end. -file("src/lightspeed/platform/foundation.gleam", 314). ?DOC(" All seams have explicit and external override points.\n"). -spec explicit_override_points(app_profile()) -> boolean(). explicit_override_points(Profile) -> ((override_point_valid(erlang:element(3, erlang:element(3, Profile))) andalso override_point_valid(erlang:element(3, erlang:element(4, Profile)))) andalso override_point_valid(erlang:element(3, erlang:element(5, Profile)))) andalso override_point_valid(erlang:element(3, erlang:element(6, Profile))). -file("src/lightspeed/platform/foundation.gleam", 666). -spec has_workflow(list(lifecycle_workflow()), lifecycle_workflow()) -> boolean(). has_workflow(Workflows, Expected) -> case Workflows of [] -> false; [Workflow | Rest] -> case Workflow =:= Expected of true -> true; false -> has_workflow(Rest, Expected) end end. -file("src/lightspeed/platform/foundation.gleam", 652). -spec has_surface(list(product_surface()), product_surface()) -> boolean(). has_surface(Surfaces, Expected) -> case Surfaces of [] -> false; [Surface | Rest] -> case Surface =:= Expected of true -> true; false -> has_surface(Rest, Expected) end end. -file("src/lightspeed/platform/foundation.gleam", 617). -spec metering_source_valid(metering_source()) -> boolean(). metering_source_valid(Source) -> case Source of {event_log, Module} -> module_external(Module); {usage_pipeline, Module@1} -> module_external(Module@1); {hybrid_metering, Primary, Fallback} -> module_external(Primary) andalso module_external(Fallback) end. -file("src/lightspeed/platform/foundation.gleam", 608). -spec billing_provider_valid(billing_provider()) -> boolean(). billing_provider_valid(Provider) -> case Provider of {stripe, Module} -> module_external(Module); {paddle, Module@1} -> module_external(Module@1); {mixed_billing, Primary, Fallback} -> module_external(Primary) andalso module_external(Fallback) end. -file("src/lightspeed/platform/foundation.gleam", 516). -spec valid_billing_seam(billing_seam()) -> boolean(). valid_billing_seam(Seam) -> (((billing_provider_valid(erlang:element(2, Seam)) andalso override_point_valid( erlang:element(3, Seam) )) andalso metering_source_valid(erlang:element(4, Seam))) andalso erlang:element(5, Seam)) andalso erlang:element(6, Seam). -file("src/lightspeed/platform/foundation.gleam", 599). -spec policy_provider_valid(policy_provider()) -> boolean(). policy_provider_valid(Provider) -> case Provider of {role_based, Module} -> module_external(Module); {attribute_based, Module@1} -> module_external(Module@1); {mixed_policy, Primary, Fallback} -> module_external(Primary) andalso module_external(Fallback) end. -file("src/lightspeed/platform/foundation.gleam", 508). -spec valid_policy_seam(policy_seam()) -> boolean(). valid_policy_seam(Seam) -> (((policy_provider_valid(erlang:element(2, Seam)) andalso override_point_valid( erlang:element(3, Seam) )) andalso erlang:element(4, Seam)) andalso erlang:element(5, Seam)) andalso erlang:element(6, Seam). -file("src/lightspeed/platform/foundation.gleam", 590). -spec admin_provider_valid(admin_provider()) -> boolean(). admin_provider_valid(Provider) -> case Provider of {embedded_panel, Module} -> module_external(Module); {external_backoffice, Module@1} -> module_external(Module@1); {mixed_admin, Primary, Fallback} -> module_external(Primary) andalso module_external(Fallback) end. -file("src/lightspeed/platform/foundation.gleam", 500). -spec valid_admin_seam(admin_seam()) -> boolean(). valid_admin_seam(Seam) -> (((admin_provider_valid(erlang:element(2, Seam)) andalso override_point_valid( erlang:element(3, Seam) )) andalso (erlang:element(4, Seam) /= <<""/utf8>>)) andalso (erlang:element(5, Seam) /= <<""/utf8>>)) andalso erlang:element(6, Seam). -file("src/lightspeed/platform/foundation.gleam", 581). -spec auth_provider_valid(auth_provider()) -> boolean(). auth_provider_valid(Provider) -> case Provider of {first_party, Module} -> module_external(Module); {oidc, Module@1} -> module_external(Module@1); {hybrid, Primary, Fallback} -> module_external(Primary) andalso module_external(Fallback) end. -file("src/lightspeed/platform/foundation.gleam", 493). -spec valid_auth_seam(auth_seam()) -> boolean(). valid_auth_seam(Seam) -> ((auth_provider_valid(erlang:element(2, Seam)) andalso override_point_valid( erlang:element(3, Seam) )) andalso (erlang:element(4, Seam) > 0)) andalso erlang:element(5, Seam). -file("src/lightspeed/platform/foundation.gleam", 297). ?DOC(" Validate one app-platform profile.\n"). -spec valid(app_profile()) -> boolean(). valid(Profile) -> ((((((((((((erlang:element(2, Profile) /= <<""/utf8>>) andalso valid_auth_seam( erlang:element(3, Profile) )) andalso valid_admin_seam(erlang:element(4, Profile))) andalso valid_policy_seam(erlang:element(5, Profile))) andalso valid_billing_seam(erlang:element(6, Profile))) andalso has_surface(erlang:element(7, Profile), customer_portal)) andalso has_surface(erlang:element(7, Profile), admin_console)) andalso has_surface(erlang:element(7, Profile), public_api)) andalso has_workflow(erlang:element(8, Profile), account_signup_activation)) andalso has_workflow(erlang:element(8, Profile), subscription_upgrade)) andalso has_workflow(erlang:element(8, Profile), admin_approval_escalation)) andalso has_workflow(erlang:element(8, Profile), tenant_policy_review)) andalso explicit_override_points(Profile). -file("src/lightspeed/platform/foundation.gleam", 322). ?DOC(" Whether profile requires framework-internal patching.\n"). -spec requires_framework_internal_patching(app_profile()) -> boolean(). requires_framework_internal_patching(Profile) -> erlang:element(9, Profile). -file("src/lightspeed/platform/foundation.gleam", 327). ?DOC(" Check whether one workflow is supported by one profile.\n"). -spec supports_workflow(app_profile(), lifecycle_workflow()) -> boolean(). supports_workflow(Profile, Workflow) -> has_workflow(erlang:element(8, Profile), Workflow). -file("src/lightspeed/platform/foundation.gleam", 642). -spec metering_source_external(metering_source()) -> boolean(). metering_source_external(Source) -> metering_source_valid(Source). -file("src/lightspeed/platform/foundation.gleam", 638). -spec billing_provider_external(billing_provider()) -> boolean(). billing_provider_external(Provider) -> billing_provider_valid(Provider). -file("src/lightspeed/platform/foundation.gleam", 634). -spec policy_provider_external(policy_provider()) -> boolean(). policy_provider_external(Provider) -> policy_provider_valid(Provider). -file("src/lightspeed/platform/foundation.gleam", 630). -spec admin_provider_external(admin_provider()) -> boolean(). admin_provider_external(Provider) -> admin_provider_valid(Provider). -file("src/lightspeed/platform/foundation.gleam", 626). -spec auth_provider_external(auth_provider()) -> boolean(). auth_provider_external(Provider) -> auth_provider_valid(Provider). -file("src/lightspeed/platform/foundation.gleam", 484). -spec seams_external(app_profile()) -> boolean(). seams_external(Profile) -> ((((auth_provider_external(erlang:element(2, erlang:element(3, Profile))) andalso admin_provider_external( erlang:element(2, erlang:element(4, Profile)) )) andalso policy_provider_external( erlang:element(2, erlang:element(5, Profile)) )) andalso billing_provider_external( erlang:element(2, erlang:element(6, Profile)) )) andalso metering_source_external( erlang:element(4, erlang:element(6, Profile)) )) andalso module_external(erlang:element(4, erlang:element(4, Profile))). -file("src/lightspeed/platform/foundation.gleam", 335). ?DOC(" Verify one workflow can run through explicit seams without framework patching.\n"). -spec workflow_runs_without_internal_patching( app_profile(), lifecycle_workflow() ) -> boolean(). workflow_runs_without_internal_patching(Profile, Workflow) -> ((supports_workflow(Profile, Workflow) andalso not erlang:element( 9, Profile )) andalso explicit_override_points(Profile)) andalso seams_external(Profile). -file("src/lightspeed/platform/foundation.gleam", 346). ?DOC(" Profile name accessor.\n"). -spec name(app_profile()) -> binary(). name(Profile) -> erlang:element(2, Profile). -file("src/lightspeed/platform/foundation.gleam", 351). ?DOC(" Profile surfaces accessor.\n"). -spec surfaces(app_profile()) -> list(product_surface()). surfaces(Profile) -> erlang:element(7, Profile). -file("src/lightspeed/platform/foundation.gleam", 356). ?DOC(" Profile workflows accessor.\n"). -spec workflows(app_profile()) -> list(lifecycle_workflow()). workflows(Profile) -> erlang:element(8, Profile). -file("src/lightspeed/platform/foundation.gleam", 680). -spec bool_label(boolean()) -> binary(). bool_label(Value) -> case Value of true -> <<"true"/utf8>>; false -> <<"false"/utf8>> end. -file("src/lightspeed/platform/foundation.gleam", 475). ?DOC(" Workflow label.\n"). -spec workflow_label(lifecycle_workflow()) -> binary(). workflow_label(Workflow) -> case Workflow of account_signup_activation -> <<"account_signup_activation"/utf8>>; subscription_upgrade -> <<"subscription_upgrade"/utf8>>; admin_approval_escalation -> <<"admin_approval_escalation"/utf8>>; tenant_policy_review -> <<"tenant_policy_review"/utf8>> end. -file("src/lightspeed/platform/foundation.gleam", 687). -spec join_with(binary(), list(binary())) -> binary(). join_with(Separator, Values) -> case Values of [] -> <<""/utf8>>; [Value] -> Value; [Value@1 | Rest] -> <<<>/binary, (join_with(Separator, Rest))/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 464). ?DOC(" Product-surface label.\n"). -spec surface_label(product_surface()) -> binary(). surface_label(Surface) -> case Surface of customer_portal -> <<"customer_portal"/utf8>>; admin_console -> <<"admin_console"/utf8>>; public_api -> <<"public_api"/utf8>>; partner_api -> <<"partner_api"/utf8>>; operations_console -> <<"operations_console"/utf8>> end. -file("src/lightspeed/platform/foundation.gleam", 454). ?DOC(" Metering-source label.\n"). -spec metering_source_label(metering_source()) -> binary(). metering_source_label(Source) -> case Source of {event_log, Module} -> <<"event_log:"/utf8, Module/binary>>; {usage_pipeline, Module@1} -> <<"usage_pipeline:"/utf8, Module@1/binary>>; {hybrid_metering, Primary, Fallback} -> <<<<<<"hybrid_metering:"/utf8, Primary/binary>>/binary, ":"/utf8>>/binary, Fallback/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 405). ?DOC(" Override-point label.\n"). -spec override_point_label(override_point()) -> binary(). override_point_label(Value) -> case Value of {hook, Module, Hook} -> <<<<<<"hook:"/utf8, Module/binary>>/binary, ":"/utf8>>/binary, Hook/binary>>; {adapter, Module@1} -> <<"adapter:"/utf8, Module@1/binary>>; {route_namespace, Module@2, Namespace} -> <<<<<<"route_namespace:"/utf8, Module@2/binary>>/binary, ":"/utf8>>/binary, Namespace/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 444). ?DOC(" Billing-provider label.\n"). -spec billing_provider_label(billing_provider()) -> binary(). billing_provider_label(Provider) -> case Provider of {stripe, Module} -> <<"stripe:"/utf8, Module/binary>>; {paddle, Module@1} -> <<"paddle:"/utf8, Module@1/binary>>; {mixed_billing, Primary, Fallback} -> <<<<<<"mixed_billing:"/utf8, Primary/binary>>/binary, ":"/utf8>>/binary, Fallback/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 560). -spec billing_seam_signature(billing_seam()) -> binary(). billing_seam_signature(Seam) -> <<<<<<<<<<<<<<<<(billing_provider_label(erlang:element(2, Seam)))/binary, "|override="/utf8>>/binary, (override_point_label(erlang:element(3, Seam)))/binary>>/binary, "|metering="/utf8>>/binary, (metering_source_label(erlang:element(4, Seam)))/binary>>/binary, "|webhook_verification="/utf8>>/binary, (bool_label(erlang:element(5, Seam)))/binary>>/binary, "|dunning="/utf8>>/binary, (bool_label(erlang:element(6, Seam)))/binary>>. -file("src/lightspeed/platform/foundation.gleam", 434). ?DOC(" Policy-provider label.\n"). -spec policy_provider_label(policy_provider()) -> binary(). policy_provider_label(Provider) -> case Provider of {role_based, Module} -> <<"rbac:"/utf8, Module/binary>>; {attribute_based, Module@1} -> <<"abac:"/utf8, Module@1/binary>>; {mixed_policy, Primary, Fallback} -> <<<<<<"mixed_policy:"/utf8, Primary/binary>>/binary, ":"/utf8>>/binary, Fallback/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 548). -spec policy_seam_signature(policy_seam()) -> binary(). policy_seam_signature(Seam) -> <<<<<<<<<<<<<<<<(policy_provider_label(erlang:element(2, Seam)))/binary, "|override="/utf8>>/binary, (override_point_label(erlang:element(3, Seam)))/binary>>/binary, "|tenant_scoped="/utf8>>/binary, (bool_label(erlang:element(4, Seam)))/binary>>/binary, "|deny_by_default="/utf8>>/binary, (bool_label(erlang:element(5, Seam)))/binary>>/binary, "|decision_trace="/utf8>>/binary, (bool_label(erlang:element(6, Seam)))/binary>>. -file("src/lightspeed/platform/foundation.gleam", 424). ?DOC(" Admin-provider label.\n"). -spec admin_provider_label(admin_provider()) -> binary(). admin_provider_label(Provider) -> case Provider of {embedded_panel, Module} -> <<"embedded_panel:"/utf8, Module/binary>>; {external_backoffice, Module@1} -> <<"external_backoffice:"/utf8, Module@1/binary>>; {mixed_admin, Primary, Fallback} -> <<<<<<"mixed_admin:"/utf8, Primary/binary>>/binary, ":"/utf8>>/binary, Fallback/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 536). -spec admin_seam_signature(admin_seam()) -> binary(). admin_seam_signature(Seam) -> <<<<<<<<<<<<<<<<(admin_provider_label(erlang:element(2, Seam)))/binary, "|override="/utf8>>/binary, (override_point_label(erlang:element(3, Seam)))/binary>>/binary, "|audit_sink="/utf8>>/binary, (erlang:element(4, Seam))/binary>>/binary, "|break_glass_role="/utf8>>/binary, (erlang:element(5, Seam))/binary>>/binary, "|approval_workflow="/utf8>>/binary, (bool_label(erlang:element(6, Seam)))/binary>>. -file("src/lightspeed/platform/foundation.gleam", 415). ?DOC(" Auth-provider label.\n"). -spec auth_provider_label(auth_provider()) -> binary(). auth_provider_label(Provider) -> case Provider of {first_party, Module} -> <<"first_party:"/utf8, Module/binary>>; {oidc, Module@1} -> <<"oidc:"/utf8, Module@1/binary>>; {hybrid, Primary, Fallback} -> <<<<<<"hybrid:"/utf8, Primary/binary>>/binary, ":"/utf8>>/binary, Fallback/binary>> end. -file("src/lightspeed/platform/foundation.gleam", 524). -spec auth_seam_signature(auth_seam()) -> binary(). auth_seam_signature(Seam) -> <<<<<<<<<<<<<<<<(auth_provider_label(erlang:element(2, Seam)))/binary, "|override="/utf8>>/binary, (override_point_label(erlang:element(3, Seam)))/binary>>/binary, "|session_ttl="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(4, Seam)))/binary>>/binary, "|mfa_required="/utf8>>/binary, (bool_label(erlang:element(5, Seam)))/binary>>/binary, "|passkey="/utf8>>/binary, (bool_label(erlang:element(6, Seam)))/binary>>. -file("src/lightspeed/platform/foundation.gleam", 361). ?DOC(" Stable profile signature.\n"). -spec signature(app_profile()) -> binary(). signature(Profile) -> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"profile:"/utf8, (erlang:element( 2, Profile ))/binary>>/binary, "|auth="/utf8>>/binary, (auth_seam_signature( erlang:element( 3, Profile ) ))/binary>>/binary, "|admin="/utf8>>/binary, (admin_seam_signature( erlang:element(4, Profile) ))/binary>>/binary, "|policy="/utf8>>/binary, (policy_seam_signature( erlang:element(5, Profile) ))/binary>>/binary, "|billing="/utf8>>/binary, (billing_seam_signature( erlang:element(6, Profile) ))/binary>>/binary, "|surfaces="/utf8>>/binary, (join_with( <<","/utf8>>, gleam@list:map( erlang:element(7, Profile), fun surface_label/1 ) ))/binary>>/binary, "|workflows="/utf8>>/binary, (join_with( <<","/utf8>>, gleam@list:map( erlang:element(8, Profile), fun workflow_label/1 ) ))/binary>>/binary, "|internal_patch="/utf8>>/binary, (bool_label(erlang:element(9, Profile)))/binary>>. -file("src/lightspeed/platform/foundation.gleam", 381). ?DOC(" Stable integration-seam signature for extension contracts.\n"). -spec seam_contract_signature(app_profile()) -> binary(). seam_contract_signature(Profile) -> <<<<<<<<<<<<<<"auth_override="/utf8, (override_point_label( erlang:element( 3, erlang:element(3, Profile) ) ))/binary>>/binary, "|admin_override="/utf8>>/binary, (override_point_label( erlang:element(3, erlang:element(4, Profile)) ))/binary>>/binary, "|policy_override="/utf8>>/binary, (override_point_label( erlang:element(3, erlang:element(5, Profile)) ))/binary>>/binary, "|billing_override="/utf8>>/binary, (override_point_label(erlang:element(3, erlang:element(6, Profile))))/binary>>. -file("src/lightspeed/platform/foundation.gleam", 393). ?DOC(" Stable workflow matrix signature.\n"). -spec workflow_matrix_signature(app_profile()) -> binary(). workflow_matrix_signature(Profile) -> Entries = gleam@list:map( required_workflows(), fun(Workflow) -> <<<<(workflow_label(Workflow))/binary, "="/utf8>>/binary, (bool_label( workflow_runs_without_internal_patching(Profile, Workflow) ))/binary>> end ), <<<<<<"workflow_matrix:"/utf8, (erlang:element(2, Profile))/binary>>/binary, "|"/utf8>>/binary, (join_with(<<";"/utf8>>, Entries))/binary>>.