Dependency map for the Tier 1 (dedicated MCP tool) resources: Spaces, Environments,
Projects, Accounts, Certificates, Tenants, Variables, Feature Toggles, Branches,
Runbooks, Releases, Deployments, Deployment Targets/Machines, Kubernetes Targets,
Tasks, Interruptions, Events, and Current User.
Solid arrow = hard dependency (the parent must exist before the child can be created at all).
Dashed arrow = soft dependency (optional — only needed if you scope/link to it).
system-generated by Deployments/Runbook Runs — not created directly
Interruptions
system-generated by Tasks needing manual intervention
Events
system-generated byproduct of any action
Current User
pre-existing authenticated identity — not created
Answers to the specific questions
Can you create variables before environments?
Yes. Variables only hard-require a Project. Environments are only needed if you
want to scope a variable's value to a specific environment — an unscoped (or
channel-scoped) variable can be created with zero environments in the space.
Can you have feature toggles without creating tenants first?
Yes. Feature Toggles only hard-require a Project. Tenants are one optional
scoping dimension (alongside Environments and Segments) — a global or
environment-scoped toggle needs no tenants at all.
Notable non-obvious points
Environments don't gate Project creation — the default Lifecycle has no
phase restrictions, so a Project can exist with zero Environments. Environments
only become a hard blocker at Deployment time and at Deployment Target
creation.
Accounts/Certificates aren't a blanket prerequisite for Deployment Targets —
only for target types whose auth mechanism needs them (e.g. Azure/AWS targets,
Kubernetes client-cert auth). A Listening/Polling Tentacle target needs neither.
Tasks, Interruptions, and Events aren't creatable resources — they're
system-generated records that fall out of Deployments and Runbook Runs.