Stage 1: You can (right now) create Custom Fields via Compass' APIs. Add text
, number
and boolean
types, assign them to different types of Components (Services/Libraries/Applications/Other). Instructions below…
Stage 2: We're mid-build on the Custom Field management UI — create, edit, assign & delete custom fields through the web UI… landing mid June.
Stage 3: CUSTOM FIELDS IN SCORECARDS Y'ALL! Bring the power of Scorecards to the flexibility of Custom Fields! This changes everything. It allows you to integrate other tools or processes into Compass Scorecards, co-mingle them with Metrics and create expressive, consistent policies which join up data from anywhere in your organisation.
<Site>
: Which site are you running Compass on? <Site>.atlassian.net<API Token>
: Head to https://id.atlassian.com/manage-profile/security/api-tokens and create a new API token — name it anything you like (I called mine "Tacotoken" 🌮). Copy it and keep it safe!<Email>
: We'll also need the email address used with your Atlassian account — you can double check it at https://id.atlassian.com/manage-profile/profile-and-visibility<Cloud ID>
: Grab your Cloud ID — run this and look for the cloudId
value.curl -u "<Email>:<API Token>" --request POST \
--url https://api.atlassian.com/graphql \
--header 'Accept: application/json' \
--header 'Content-type: application/json' \
--data '{"query":"query cloudIdByHostname($hostname: String!) {\n tenantContexts(hostNames: [$hostname]) {\n cloudId\n }\n}", "variables": {"hostname": "<Site>.atlassian.net"}}'
Right! Let's put it all together in a taco-themed example:
curl -u "<Email>:<API token>" --request POST \
--url https://api.atlassian.com/graphql \
--header 'Content-Type: application/json' \
--header 'X-ExperimentalApi: compass-beta' \
--header 'X-ExperimentalApi: compass-prototype' \
--data '{"query":"mutation createCustomFieldDefinition($input: CompassCreateCustomFieldDefinitionInput!) {\n compass {\n createCustomFieldDefinition(input: $input) {\n success\n errors {\n message\n extensions {\n statusCode\n errorType\n }\n }\n customFieldDefinition {\n\t\t\t\t__typename\n id\n name\n description\n\t\t\t\tcomponentTypes\n }\n }\n }\n}","variables":{"input":{"textFieldDefinition":{"cloudId":"<Cloud ID>","name":"Favourite taco?","description":"Al pastor is probably the right answer.","componentTypes":["APPLICATION","SERVICE"]}}},"operationName":"createCustomFieldDefinition"}'
Okay, okay, okay, okay, okay… maybe you're nope-ing out on having to make an API call. Luckily you don't have to wait until Stage 2 is released (again, mid June!). We made an internal UI for testing & development purposes and decided to live up to the Alpha in our name. So here it is: https://<Site>.atlassian.net/compass/custom-fields
. It won't last long, just until the real admin experience is shipped, but it'll get you going today.
Aaaaaaaand… that's it! Now you can figure out just what kind of tacos each of your components prefers. If that's not worth the price of entry then I don't know what is.
What are you going to use Custom Fields to enable in Compass? We'd love to hear from you — help us shape this feature and make sure Compass works just the way you need it to!
Andrew Freedman
Product Manager
Atlassian
Sydney
2 accepted answers
6 comments