Core

Projects

Projects APIs form the foundation of Tray's comprehensive suite of endpoints designed to automate Software Development Life Cycle (SDLC) processes and facilitate environment promotion through a robust export-import mechanism. These APIs are particularly valuable for organizations implementing automated CI/CD pipelines for their projects.

The suite enables programmatic management of project versions, allowing teams to create, export, and import project states across different environments (from development to production).

This suite empowers teams implementing automated deployment pipelines by enabling:

  • Automated environment promotion processes
  • Consistent deployment procedures across environments
  • Pre-deployment impact analysis
  • Controlled rollback capabilities
  • Configuration and dependency management across environments

The Project endpoints provide essential functionality across four key areas:

  • Version Control: Create and list project versions to maintain a history of project states
  • Environment Promotion: Export project versions from one environment and import them into another
  • Pre-deployment Validation: Analyze requirements and preview changes before performing imports
  • Dependency Management: Handle configuration mappings, authentications, and service connections during imports

Environment Promotion Overview

A typical environment promotion pipeline using these APIs follows these steps:

  1. After completing development, create a project version in the source environment using the Create Project Version endpoint. This saves the current state of your integration.

  2. Use the List Project Versions API to retrieve available versions and compare them if needed (similar to git diff functionality).

  3. Once you've identified the desired version for promotion, use the Export Project from Version API to obtain the project version as JSON.

  4. Before importing to the target environment:

    • Use the Get Import Requirements API to identify necessary authentication and configuration mappings, to make sure all required mappings are available in your pipeline
    • Use the Get Import Preview API to understand the impact of the import (optional but recommended, especially for embedded integrations as potential breaking changes will be highlighted at this step)
  5. Import the project into the target environment using the Import Project API, providing the required environmental mappings (such as different authentications, custom services and connectors mappings or config values for the target environment).

  6. After import, save a new version in the target environment (using Create Project Version API), ideally maintaining version number consistency with the source environment.

For embedded integrations, additional solution management steps are required after the project promotion process (please see the Solutions APIs documentation).

  1. Use the Get Publish Preview API to validate the impact of publishing the updated solution (e.g. expected breaking changes)

  2. Use the Publish Solution API to propagate changes to solution instances.

Platform deployment:

  • Project import completes the promotion process

Embedded deployment:

  • Project import updates the draft solution
  • Publishing solution required to apply changes to existing solution instances
  • May require manual solution instance upgrades in case of breaking changes

Import project

Import project with desired dependencies mappings (config, authentication, services, connectors can be specified)

Get import preview

Returns potential changes and impacts on the project and the solution (if applicable) if the import is applied.

Get import requirements

Returns information describing required authentications and config mappings needed to complete an import

List project versions

Retrieve a list of saved versions of the project

Create project version

Save a specific state of the project as version so that it can be later retrieved for release (or rollback)

Export project from version

Retrieve a specific project version JSON

Was this page helpful?