What are Spaces?
Spaces represent logical groupings of Connectors, Satellites, and Resources that can communicate with each other. They enable network segmentation and access isolation that mirrors your infrastructure’s connectivity patterns. Think of Spaces as virtual network boundaries for Formal objects.How Spaces Work
Isolation
Objects in different Spaces cannot communicate with each other
Flexibility
Objects without a Space can access any Resource that is not in a Space
Space Rules
Assignment Rules
- Each object can belong to at most ONE Space
- Objects without a Space can access any Resource without a Space
- Objects with a Space can only access Resources in the same Space
Connectivity Matrix
| Connector | Resource | Can Connect? |
|---|---|---|
| No Space | No Space | ✅ Yes |
| No Space | Space A | ❌ No |
| Space A | No Space | ❌ No |
| Space A | Space A | ✅ Yes |
| Space A | Space B | ❌ No |
Use Cases
Environment Segmentation
Create Spaces for each environment to prevent cross-environment access:production-connector can only reach production databases, even if they have credentials for staging.
Geographic Isolation
Separate resources by region for compliance or latency requirements:Team-Based Access
Create Spaces for different teams or projects:Creating and Managing Spaces
- Web Console
- Terraform
1
Navigate to Spaces
Go to Spaces in the Formal console
2
Create Space
Click New Space and provide a name
3
Assign objects
Edit Connectors, Satellites, or Resources to assign them to the Space
Updating Spaces
Changing an Object’s Space
When you change a Connector, Satellite, or Resource’s Space assignment: For Resources, the change is immediate—new connections will respect the new Space assignment.Testing Space Changes
Before applying Space changes in production:- Create a test Connector in the new Space
- Verify connectivity to intended Resources
- Update the production Connector’s Space
- Restart the Connector
- Verify connectivity
Deleting Spaces
Spaces cannot be deleted if they contain any objects.1
Remove all objects
Reassign or delete all Connectors, Satellites, and Resources in the Space
2
Verify empty
Confirm the Space shows 0 objects
3
Delete Space
Click Delete in the Space details page
Spaces vs. Policies
| Aspect | Spaces | Policies |
|---|---|---|
| Purpose | Network segmentation | Access control |
| Enforced at | Infrastructure layer | Request layer |
| Use for | Environment isolation | Permission rules |
Best Practices
Mirror Your Infrastructure
Mirror Your Infrastructure
Create Spaces that match your actual network topology and environment
boundaries. This makes Space assignments intuitive.
Start with Environments
Start with Environments
At minimum, create Spaces for production, staging, and development. This
prevents accidental prod access from lower environments.
Use Policies for User Access
Use Policies for User Access
Don’t create Spaces per user or team. Use Policies for user-level access
control and Spaces for infrastructure segmentation.
Test Space Changes
Test Space Changes
Always test connectivity after changing Space assignments, especially in
production. Deploy a test Connector first.
Document Space Purpose
Document Space Purpose
Use clear names and maintain documentation of what each Space represents and
which teams use it.