Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt

Use this file to discover all available pages before exploring further.

A charter is a saved convoy composition. Saving one captures:
  • the list of components (repo + slug + ref kind + ref value + auto-redeploy + spec path override)
  • the keys of every env-scoped variable and secret the original convoy declared
  • a name and optional description
Charters do not store secret values, variable values, or the source convoy’s primary-instance toggle. They’re a pure structural snapshot — instantiating one prompts the operator to fill in values and pick whether the new convoy should run a primary instance.

When to save one

  • You’ve assembled a “feature-preview” convoy (frontend + api + worker + redis) and you want designers to spin up identical copies on demand without re-doing the form.
  • You want a “staging-shape” charter that operators can instantiate as staging-ben, staging-jane, etc.
Saved charters live at /<slug>/environments/templates (sidebar → Convoys → Charters button).

Instantiating from a charter

From the Charters page, click New from charter. The instantiation modal shows every variable + secret key the charter declared and prompts you to provide values. Slug must be unique within the org (the standard ^[a-z][a-z0-9-]{0,31}$ constraint). You can also pick a charter from the top of the New convoy composer — the page pre-populates the component grid and the variable/secret rows.

Lifecycle

  • Charters are org-scoped. Deleting one doesn’t affect any convoys already instantiated from it; the convoy carries its own definition.
  • The original convoy’s template_id column records which charter it was instantiated from (advisory — no FK, so deleting the charter is safe).
  • A env_template_saved event lands on the source convoy’s log when the charter is created, with the new template ID in data.templateId.

Limitations

  • Charters can’t be versioned. Re-saving with the same name fails with a unique-constraint error. Pick a new name or delete the old one first.
  • Charters don’t track repo deletions. If you delete a repo that a charter references, instantiating that charter will fail with “repository not found”. You’ll need to recreate the charter from a healthy convoy.