Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Feedback Request - First look at Compass Templates

Hey everyone, Josh here from the product team. We're hard at work exploring a new feature for Compass that we think is really exciting - Templates! Today Compass enables you to easily bring existing components into the product via multiple avenues but we don't yet give you a way to create new software projects, with boilerplate code & best practices setup, straight from Compass. We're looking to change that with templates and we want your feedback on if we're heading in the right direction!

Watch a less than 10min overview of our thoughts on templates and feel free to comment on this post or on the Loom: https://www.loom.com/share/efb4a447c8724d1da6d536a70d098f7f

Don't have time to watch the Loom? Here's a summary of what we're working on that attempts to paint the picture:

By harnessing the power of customizable templates, you can now seamlessly create new components from Compass that adhere to your organization's standards. Using the new Templates screen/UI, you can create a component template that allows you to specify a source git repository from a supported SCM app, any optional parameters that need to be entered by a user when a new component is created from the template, and an optional webhook URL you can enter to receive a JSON payload after the component gets created. The template itself is a Compass component of the new type “Template”.

When you create a new component from a template, Compass will first create a new repository in the SCM system by cloning/forking from the specified template repository. Then it will create the component in Compass including some initial metadata like repo link, description, and owner. If the template has a webhook URL declared in it, Compass will also send a JSON payload to the webhook URL allowing the owner to process the data and do things like continue orchestration of the newly created component (e.g. deploy some hello world code on infrastructure spun up in the cloud, create a new service in Opsgenie and associate with the component, setup an observability tool, etc.). The JSON payload contains information about the newly created component including any optional parameters that were entered.

Below are some low-fidelity mocks representing the experience the team is thinking for templates (you can learn more in the loom above):

1. Templates in Compass

community templates.png

2. Defining your Template and Adding a Webhook URL

Untitled.png

3. Adding Parameters for your Templates through YML

Untitled.png

4. Template Component Detail View

template component.png

5. All your Templates in One Space

templates.png

6. Using a Template to Create a Component (Adding Parameters)

Params-Adding.png

6. Reviewing & Creating a Component from a Template

Untitled.png

7 comments

Adam Setch March 20, 2023

This is extremely exciting.  🚀. 

Would love to be able to define template fields via the UI as well as yml driven (for version control).  In addition to the template field types shown in the mock-up, we have a few which we'd really like to source from JSM

Like # people like this
Josh Campbell
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 22, 2023

Awesome feedback Adam, love the idea of sourcing field/param values from JSM attributes in particular (and for that matter JSW, Bitbucket, Opsgenie, etc.). If you're keen to share more about the JSM fields you'd pull in to a Compass template I'd love to know the details, it helps us shape the feature and story around it! Thanks for the thoughts on yaml as well, version control is definitely a big benefit that I also had in mind there. 

Like Adam Setch likes this
Richard Simpson March 22, 2023

This looks great! Long term I wonder if ya'll are thinking about upgrades too? One issue we've ran into with an internal templating system like this is it works great for minting new repositories, but shifting standards and updates cause cloned repos to drift far away from template updates. Not an easy problem, but something I wanted to mention!

Like # people like this
Josh Campbell
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 22, 2023

Definitely something I'd love to tackle in the future yes! It's challenging as you mention but definitely tons of value there in enabling this :) 

Like # people like this
Chris Wu March 26, 2023

Great news!

Our team has been creating project templates using Cookiecutter. One main reason we chose Cookiecutter is its popularity in this space and the availability of many Cookiecutter templates in the community that we can reuse. We're wondering if supporting Cookiecutter is on your roadmap.

Here are some Cookiecutter templates: https://www.cookiecutter.io/templates

Like # people like this
Leo O_Donnell April 7, 2023

Hey, this looks great. Cloning a template is helpful, but not always enough if there are a number of things that need to be setup post repo creation.

Have you looked into being able to support something like cookiecutter, or offering some sort of post template hooks?

Like # people like this
Josh Campbell
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
April 11, 2023

Hey Chris & Leo, thanks for the pings on cookiecutter! It's not planned for our first release but it's on our mind and this certainly helps. Initially what we'll be offering is a webhook event you can listen for to help continue orchestration of the new component in other systems/tools you have. But we understand the power of cookiecutter and other templating engine solutions and it is absolutely where we want to head next with this feature :) If others reading are also interested in this I'd LOVE to hear from you!

Like # people like this

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events