Introducing slugs in Config as Code
Blog post from Octopus Deploy
Octopus initially used unique IDs for referencing resources in its Configuration as Code feature, but these IDs lacked context and readability, posing challenges for human users. To address this, the team replaced IDs with resource names to enhance user experience, but this created complications, such as breaking changes and ambiguity between names and IDs. As a solution, Octopus introduced slugs—human-readable, URL-friendly, unique identifiers—to improve clarity and avoid breaking references when resources are renamed. Slugs are automatically generated based on resource names and can be modified independently, allowing for greater flexibility without disrupting references. Although slugs are currently being used in the Octopus Configuration Language (OCL), their integration into Octopus's full ecosystem, including the front-end and back-end, remains a work in progress. This transition aims to improve stability and predictability, with potential for wider application across other teams within Octopus in the future.