Software Templates

Use Software Templates within Self-Service to help developers quickly provision infrastructure and create microservices that align with your best practices.

Join the Preview!

Software Templates are in Preview. Complete the form to request access.

Request Access

Create a Software Template

A Software Template is stored in a Git repository and serves as a reusable framework. Build apps to collect inputs and pass them into the template repository to generate customized configurations.

To create a Software Template, you can:

  • Start from an example using pre-built blueprints.
  • Start from scratch by defining your own template and workflows.

Start from an example

Use App Builder Blueprints to quickly configure an app or workflow. These blueprints provide working examples that you can customize by modifying inputs, integrating with source control or cloud providers, and adjusting permissions.

Example blueprints:

To use a blueprint:

  1. Select a blueprint in App Builder Blueprints.
  2. Customize the form fields to capture required inputs.
  3. Click Save as New App to create an app linked to a templating workflow.

Start from scratch

To build a Software Template from scratch:

  1. Create a form using App Builder:

    1. Navigate to Actions > App Builder from the left-hand menu, and select New App.
    2. Enter a name and description, and use the drag-and-drop editor to create a form that collects the required parameters.
      • You can use the Form component or build a custom UI.
    3. Select New Query, and use the Trigger workflow action to call your workflow and pass in parameters.
      • Explore Actions Catalog for built-in integrations, or use the HTTP action to interact with any integrations not available.
    4. Create a Button that submits the form and triggers your workflow.
    5. Save and publish the app.
  2. Create a workflow for your template:

    1. Navigate to Workflow Automation and click New Workflow.
    2. Enter a name, add relevant tags, and define the input parameters you want to collect from users.
  3. Configure the templating workflow:

    1. Use GitHub, Gitlab, or HTTP actions to retrieve your template files.
    2. Use the Apply Template action to manipulate your template repository and pass in your input parameters.
    3. Use GitHub, Gitlab, or HTTP actions to upload the project files to the repository.
    4. Save the workflow.
Workflow for building Software Template automations
  1. Test your app and workflow:

    1. Click View App to preview the app as a standalone page.
    2. Monitor the templating process in Workflow Automation.

Publish your app

Once your Software Template is configured and tested, publish it so your team can use it. The publishing flow lets you:

  • Define permissions to control access.
  • Add the app to a Dashboard or the Self-Service portal for easy discovery.
Publish to Self-Service

Available templating actions

The following actions are available for Software Catalog in Datadog App Builder and Workflow Automation. For a complete list, see Action Catalog.

  • Templating
    • “Apply template”: Pass input parameters into a set of files.
  • GitHub
    • “Create or update file”: Create or modify files in a GitHub repository.
    • “Edit configuration file”: Modify YAML or JSON configuration files.
    • “Trigger GitHub Actions workflow”: Initiate a GitHub Action.
    • “Search repositories”: Retrieve a list of repositories.
    • “Create pull request”: Open a pull request.
  • GitLab
    • “Create file”: Create a file in a GitLab repository.
    • “Create project”: Create a GitLab project.
  • Azure DevOps
    • “Run pipeline”: Trigger a pipeline run in Azure DevOps.
  • Retrieve Service Information
    • “List entity definitions”: Retrieve all service definitions from Datadog Software Catalog (v3.0 and prior).
    • “Get service dependencies”: Retrieve a service’s upstream and downstream dependencies.
  • Approvals
    • “Make a decision”: Use Slack or Microsoft Teams to solicit an approval.
      • Use integrations with ServiceNow, Jira, or HTTP calls if you have an existing change management process.
  • HTTP
    • “Make request”: Make an HTTP request to interact with any external API.
  • Data Transformation
    • “Expression”, “Function”: Perform data transformations with JavaScript.
      • Use Bits AI to assist with writing custom JavaScript code.
  • Private Actions

Further reading