Space Configuration¶
A Space in ThothForge represents a logical container for your Internal Developer Platform (IDP) resources. It defines the context in which your projects, templates, and configurations operate.
Creating a Space¶
You can create a new space using the thothctl init space command:
thothctl init space -sn my-space -vcss github --ci github-actions --description "My development space" --terraform-registry "https://registry.terraform.io"
This will create a new space configuration file in the ~/.thothcf/ directory.
Space Configuration File¶
The space configuration is stored as a TOML file in the ~/.thothcf/ directory. The file name is the space name with a .toml extension.
Here's an example of a space configuration file:
# ThothForge Space Configuration
[space]
name = "my-space"
description = "My development space"
version_control = "github"
ci_system = "github-actions"
created_at = "2025-04-28T02:33:21"
updated_at = "2025-04-28T02:33:21"
# Registry configurations
[[registries]]
name = "terraform-registry"
url = "https://registry.terraform.io"
type = "terraform"
auth_required = false
default = true
# Endpoints for various services
[endpoints]
backstage = "https://backstage.example.com"
documentation = "https://docs.example.com"
Configuration Options¶
Space Section¶
The [space] section contains general information about the space:
name: The name of the spacedescription: A description of the spaceversion_control: The version control system used by the spaceci_system: The CI/CD system used by the spacecreated_at: The date and time when the space was createdupdated_at: The date and time when the space was last updated
Registries Section¶
The [[registries]] section contains information about module registries:
name: The name of the registryurl: The URL of the registrytype: The type of registry (e.g., "terraform")auth_required: Whether authentication is required to access the registrydefault: Whether this is the default registry
Endpoints Section¶
The [endpoints] section contains URLs for various services used by the space.
Managing Spaces¶
Listing Spaces¶
You can list all available spaces using the thothctl list spaces command:
Showing Space Details¶
View the full configuration summary of a space:
This displays: - Space name, description, status (active/inactive), and creation date - Version control provider - Terraform registry and authentication method - Orchestration tool - Governance policy repository (if configured) - Associated projects - Credentials status
Activating a Space¶
Set a space as the active context (used as default for new projects):
Updating a Space¶
Update an existing space's configuration:
thothctl space update my-space --vcs-provider github --orchestration-tool terragrunt
thothctl space update my-space --policy-repo https://github.com/myorg/iac-policies.git
Available options:
- -d, --description — New description
- -vcs, --vcs-provider — Version control provider (azure_repos, github, gitlab)
- -ot, --orchestration-tool — Orchestration tool (terragrunt, terramate, none)
- -tr, --terraform-registry — Terraform registry URL
- -pr, --policy-repo — Git repository URL or local path for organization-level IaC policies
Deleting a Space¶
You can delete a space using the thothctl remove space command:
Using Spaces with Projects¶
When creating a new project, you can specify the space to use:
This will create a new project in the specified space.