MMS Integration with External Git Repositories


Overview

TIBCO Streaming Model Management Server (MMS) supports integration with external Git repositories for managing projects and artifacts. By default, MMS automatically configures a local Git instance during installation through launcher or cloud installation. Hence, most users do not need to manually configure the Git instance.

Users can modify the server configuration file to connect to a different or additional Git server, if required. This is particularly useful for customers who want to use their own Git server instead of the default configuration.

Once configured, projects stored in the Git repository become accessible through the MMS clients. These projects can be imported from the backing space into user sandboxes and edited using the Artifact Editor.


Synchronization Between MMS and Git Repository

MMS ensures synchronization between the internal project changes and external updates made in the Git repository.

When a project is added or modified within MMS, the user can create a checkpoint of these changes and publish the checkpoint to the external Git repository. Conversely, any changes made directly in the Git repository by an external user are pulled into MMS either:

  • On demand using the Checkpoint > Merge operation.
  • Automatically through a periodic background process.

The repositoryRefreshIntervalSeconds can be configured in the server configuration file to define how frequently MMS fetches updates from the Git repository.


Handling Merge Conflicts

MMS detects and resolves merge conflicts through the clients. If a project is modified concurrently within MMS and externally in the Git repository:

  • The first modification to be committed wins.
  • Users whose changes conflict with external modifications must use the Checkpoint > Merge operation to reconcile differences.

This ensures that updates align with the latest version in the repository and prevents unintended overwrites.


Configuring MMS Access to Git Repositories

To view or modify the MMS server configuration file, users can run the following command:

mms-launcher generate configuration

This command generates a sample server configuration file that has comments detailing each configuration value. For more information, see the MMS Launcher Guide.


Modifying the Server Configuration File

The space section in the generated configuration file contains:

  • Space definitions.
  • Git repository details (such as URL, credentials, and so on.)

Users can reference this information when configuring MMS to use a different Git server or specifying an additional one.

A sample MMS server configuration file (with Git-related updates) is as shown below:

space:
  spaces:
    - name: external git server
      description: External Git Server space
      permissionBindings:
        mms-all-users:
          - read
          - update
          - create
      repository:
        description: local git repo
        url: https://github.com/gituser/samplegitrepository.git
        username: gituser
        password: ${GIT_PASSWORD:-gitpassword}
		    #
			# Provide the git password in the start command as `--substitutions GIT_PASSWORD=password`
			# or with an environment variable as `--substitutions GIT_PASSWORD=$GIT_PASSWORD`.
			# If not provided, defaults to `gitpassword`.
			#
    - name: Streaming Web Samples
      description: Space containing Streaming Web sample projects
      permissionBindings:
        mms-all-users:
          - read
      repository:
        description: TIBCO Streaming Samples
        url: https://github.com/TIBCOSoftware/tibco-streaming-samples.git
        rootDirectory: modelops
  repositoryRefreshIntervalSeconds: 300
registry:
  repositoryPollIntervalSeconds: 3600

Viewing Projects and Artifacts

Once an external Git repository is integrated with MMS:

  • Users can import the projects in configured backing space in the sandbox.
  • The synchronized projects are displayed based on their mapped repository paths.

This ensures efficient access and version control within MMS.