Namespace & Aliasing Strategy
When composing multiple third-party or cross-team modules, resource type names may clash (e.g., two modules both define an auth resource).
Dependency Aliasing
Instead of forcing developers to rewrite modules and enforce rigid namespaces, enterprise administrators can alias resources at the import level.
# In the Enterprise Blueprint module.toml
[dependencies.public_dns]
url = "https://github.com/rescile/public_dns"
resource_aliases = { "auth" = "dns_auth" }
[dependencies.iam]
url = "https://github.com/rescile/iam"
resource_aliases = { "auth" = "identity_auth" }
This ensures that the DNS module operates on dns_auth nodes and the IAM module operates on identity_auth nodes. This transparent translation prevents data corruption and auto-linking collisions without touching the module source code.