Managing TM1 database assets with Git

You can use Git source control to deploy database assets such as cubes, books, and views. As an administrator of a TM1 database, you can deploy database assets between environments (for example, from development to production) without stopping the database or manually copying and pasting assets. The source specifications of models and their database assets are created and managed with Git commands. You can see the structure of the database assets in Git and use Git commands to add and remove versions of your assets.

Note: Planning Analytics on Cloud customers need to be on version 2.0.9.3 or later to use Git.

These three Git providers are the only providers supported in Planning Analytics on Cloud:

As of Planning Analytics version 2.0.7, you can use Git repositories to store versions of your TM1® databases in standard JSON format. Before you read on, get started with GitHub.

Define the objects that make up a TM1 model by following these steps:

  1. Create a Git repository to store your TM1 objects. First, learn how to define database assets as TM1 objects in your source definition. For more information, see Source.
  2. Secure communication between Git and your TM1 server. Export your Git certificates and then import them into your Planning Analytics certificate store by using the following command:
    <pa_installation_dir>\bin64\gsk8capicmd_64.exe

    For more information, see Git Integration.

  3. Connect your Planning Analytics model to your Git repository.
    POST /api/v1/GitInit
    {
      "URL": "<github_repo_URL>",
      "Deployment": "dev",
      "Username": "<username>",
      "Password": "<password>",
      "Force": true
    }

    You can also check your Git status with the GitStatus command. For more information, see Initialize Git.

  4. Initialize your model source, push your source to Git, commit changes in Git, pull changes from Git, and publish a model to your environment. The first step to deploy a model is to use the GitPull action to create a Git pull plan. For more information, see Deploy Source from Git.
  5. Define the objects to represent your database assets.

    For more information, see Source Specification.

  6. Create a TM1 project file to deploy and publish your model. For example:
    {
      "Version": "1.0",
      "Name": "My Model",
      "Settings": {
        "Performance": {
          "MTQ": {
            "MTFeedersAtStartup": false
          }
        }
      },
      "Tasks": {
          "Refresh Security":
        {
          "Process": "Processes('Refresh Security')",
          "Parameters": []
        }
    	},
      "Objects": {},
      "Files": [
          "\\admin\\*\\*"
    	],
      "Ignore": [
          "Processes('Ignore Me')"
      ],
      "Deployment": {},
      "PrePull": [],
      "PostPull": [],
      "PrePush": [],
      "PostPush": []
    }
    

    When a model is successfully deployed, the project JSON file in the deployed model becomes the project file of the server. You can POST or PUT this JSON to the URL that is used to access the !tm1project resource definition: .../api/v1/!tm1project. You can review what's currently in there with a GET. For more information, see TM1 Project.