Skip to main content

Policy Schema

A liskov.json file declares one application policy. Its schema contract is proof.slipway.application-policy.v3 (a stable internal identifier — it does not change with the brand).

Top Level

FieldTypeNotes
domainstringAlways "proof.slipway.application-policy.v3".
applicationIdstringUnique application id.
displayNamestringUser-visible name.
replicasnumberDesired concurrent deployments.
metadataobjectdisplayName, appType (e.g. managed-web-app), labels.

source

FieldTypeNotes
providerstringgithub.
repositorystringowner/repo.
branchstringBranch to launch from.
pathstringPath to the policy in the repo.

artifact / artifactAutomation

FieldTypeNotes
artifact.modestringplanned-ipfs — content-addressed encrypted artifact.
artifact.requiredEncryptionModestringe.g. aes-256-gcm-loader-v1.
artifactAutomation.github.autoPublishbooleanLet the GitHub workflow publish artifacts.
artifactAutomation.github.workflowRefstringOIDC-pinned workflow allowed to publish.

runtime

FieldTypeUnitNotes
rolestringCaller-defined role label.
runtimestringNodeJSWithBundle for Node web apps.
durationMsnumbermsJob lifetime before expiry.
resources.memorynumberMBMemory request.
resources.storagenumberMBStorage request.
resources.networkRequestsnumbercountNetwork-request quota (0 = none declared).
requiredModulesstring[]e.g. ["network"].
replacementRunwayMsnumbermsLead time before expiry to launch the successor.
desiredCountnumberDesired replicas at runtime.
launch.rewardnumberplanckAcurast reward per launch (smallest units).
launch.slotsnumberProcessor slots a launch occupies.

acurast

FieldTypeUnitNotes
pinnedProcessorsstring[]Processor addresses to pin to (optional).
verifiedOnlybooleanRestrict to verified processors.
maxStartDelayMsnumbermsMax acceptable start delay.
budgetCaps.maxRewardPerLaunchnumberplanckHard cap on reward per launch.
budgetCaps.maxNativeFeePerLaunchnumberplanckHard cap on native fees per launch.
quote.requiredbooleanRequire a signed quote before funding.

environment

environment.variables[] declares non-secret variables delivered to the job:

FieldNotes
nameVariable name in the job.
sourcee.g. literal.
valueThe literal value (non-secret).
deliveryDelivery channel.
requiredWhether it must be present.

For secret values, use secrets instead — never put secrets here.

ingress

FieldNotes
moderequired makes a working route a launch precondition.
implementorbaran.
portApp listen port.
protocolhttps.
tlsModejob-owned — job holds the TLS key.
healthPathReadiness path probed by the gateway and validators.
childSessionDurationMsIngress child-session lifetime.

See Baran ingress.

secrets

secrets.declarations[] names the secrets the app needs — ids and targets only, never values:

FieldNotes
secretIdStable id within the policy.
nameEnvironment variable the secret becomes at runtime.
targetenv.
requiredMust be granted before deploy.

See Sealed secrets.

blackbox

FieldNotes
blackbox.enabledEnable encrypted logging.