You can use a Git source control repository to manage and track changes made to Informatica Intelligent Cloud Services objects such as projects, folders, and assets.
You can use the global Git repository for your organization. If the organization administrator enables project-level repositories, you can use repositories that are configured at the project level or use the global repository.
You can use the following resources:
•pull. Load objects to the Informatica Intelligent Cloud Services organization.
•pullByCommitHash. Retrieve objects that were modified by a particular commit and load them into your organization.
•checkout. Check objects out of the repository.
•undoCheckout. Undo the checkout of specified objects or undo the checkout of all objects that were included in a checkout operation.
•checkin. Check updated objects in to the repository.
•commit. Retrieve details about a commit from your repository.
•commitHistory. Receive commit history for a specific object or all of the objects in the organization.
•repositoryConnection. Get the repository connection ID for a project-level repository.
•sourceControlAction. Get the status of a source control operation.
Pulling objects
Use the pull resource to retrieve objects such as assets and projects from your repository and load them into your organization.
When you pull a project, all of the source-controlled assets in the project and the project's folders are included in the pull. If the assets already exist in the target organization, their contents are overwritten to match the assets' state at the specified commit hash. If the project and the project's folders already exist in the target organization, they're reused.
You can pull objects at the global repository or project level. The objects that you pull determine which repository is used. For example, if Project A is linked to Repo1, the pull is from Repo1. If Project B isn't linked to a project-level repository, the pull will be done from the global repository.
Dependent objects that are located in other projects are not included in the pull. If dependent objects are missing in the pull request, the response includes an error message that lists the missing dependent objects.
If an asset's connections, runtime environments, or schedule exist in the target organization, they're reused. If you want an asset to use a different connection or runtime environment in the target organization, you can map the connection or runtime environment to a connection or runtime environment in your organization using the objectSpecification object.
For example, an asset uses the SecureAgent_dev runtime environment in the dev organization and uses the SecureAgent_test runtime environment in the test organization. You can use the objectSpecification object to map the SecureAgent_dev runtime environment to the SecureAgent_test runtime environment.
Note: Informatica recommends that you include less than 1000 objects in a pull request.
POST request
To load the latest version of objects from your repository to your organization, use the following URI:
/public/core/v3/pull
Note: You might receive a response to the POST request before the pull operation completes.
You can include the following fields in the request:
Field
Type
Required
Description
commitHash
String
Yes
Unique commit hash.
The commit hash is validated during the operation.
If you use a GitHub repository, you can include a partial hash in the request by sending the first 7 characters of the hash instead of the full string.
relaxObjectSpecificationValidation
Boolean
No
Whether the sources specified in the objectSpecification object must exist in the assets being pulled. Use one of the following values:
- true. The objectSpecification objects are ignored if the sources don't exist in the assets that are included in the pull.
- false. An error occurs when an objectSpecification source doesn't exist in the assets that are included in the pull.
Default is false.
objects
List<Object>
Yes
Contains a list of all the objects to be pulled.
path
List<String>
Yes, if ID is not included
Include in the objects object.
Full path of the object to be pulled.
id
String
Yes, if path is not included
Include in the objects object.
ID of the object.
type
String
-
Include in the objects object.
Type of asset to be pulled. If not specified, default is project.
Can be one of the following types:
- DTEMPLATE. Mapping.
- MTT. Mapping task.
- DSS. Synchronization task.
- DMASK. Masking task.
- DRS. Replication task.
- DMAPPLET. Mapplet created in Data Integration.
- MAPPLET. PowerCenter mapplet.
- BSERVICE. Business service definition.
- HSCHEMA. Hierarchical schema.
- PCS. PowerCenter task.
- FWCONFIG. Fixed width configuration.
- CUSTOMSOURCE. Saved query.
- MI_TASK. Mass ingestion task.
- WORKFLOW. Linear taskflow.
- TASKFLOW
objectSpecification
List<Object>
-
Object specification for connection and runtime environments.
source
Object
Yes, if objectSpecification object is included and relaxObjectSpecificationValidation value is not true
Include in the objectSpecification object.
Contains information about the source object.
path
List<String>
Yes, if objectSpecification object is included
Include in the source object.
Full path of the connection or runtime environment in the repository.
type
String
Yes, if objectSpecification object is included
Include in the source object.
Asset type. Use one of the following values:
- Connection
- AgentGroup
target
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the target object.
Include path and type or include ID. If path, type, and ID are included, ID takes precedence.
path
List<String>
Yes, if ID is not included
Include in the target object.
Path of the connection or runtime environment that is being mapped.
Use with type.
type
String
Yes, if ID is not included
Include in the target object.
Asset type.
Use with path.
Use one of the following values:
- Connection
- AgentGroup
id
String
Yes, if path and type are not included
Include in the target object.
ID of the target object.
additionalProviderFlags
Collection <complex type>
No
Additional object specifications.
Use key-value pairs to specify additional object specifications, such as in-out parameter values and sequence generator values.
POST response
If successful, a POST request returns the following information:
Field
Type
Description
pullActionId
String
ID for the pull operation.
status
Object
Status of the pull operation.
state
String
Returned in the status object.
Initial state of the pull operation. For a successful request, value will always be NOT_STARTED.
Descriptive status message for the pull operation.
POST request examples for projects
You can request a pull operation for one or more assets or projects in a single POST request. To request a pull operation for multiple projects using the path field to specify the projects to pull, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
You can request a pull operation for one or more assets in a POST request. To request a pull operation for an asset using the path field to specify the asset to pull, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
To request a pull operation using the asset ID, the source runtime environment, and the target ID, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
Use the pullByCommitHash resource to retrieve objects that were modified by a particular commit and load them into your organization.
When you use the pullByCommitHash resource, you include a commit hash in the request. The objects that changed in the commit are included in the pull. If you want to pull objects by path or object ID, use the pull resource instead.
If you use project-level repositories, include the repoConnectionId field in a pullByCommitHash request. You can find the repoConnectionId for projects by sending a repositoryConnection request. For more information about finding the repoConnectionId, see Getting repository connection details.
If you want an asset to use a different connection or runtime environment, you can map the connection or runtime environment to a connection or runtime environment in your organization using the objectSpecification object.
Note: Informatica recommends that you include less than 1000 objects in a pull request.
POST request
To load the objects that changed in a particular commit from your repository to your organization, use the following URI:
/public/core/v3/pullByCommitHash
Note: You might receive a response to the POST request before the pull operation completes.
You can include the following fields in the request:
Field
Type
Required
Description
commitHash
String
Yes
Unique commit hash.
The commit hash is validated during the operation.
If you use a GitHub repository, you can include a partial hash by sending the first 7 characters of the commit hash. For other repositories, include the full 40-character commit hash.
searchCustomRepositories
Boolean
No
Whether to search project-level repositories if the commit hash wasn't found for the global repository.
repoConnectionId
String
No
Connection ID of the project-level repository to search.
If not specified, the global repository is searched.
relaxObjectSpecificationValidation
Boolean
No
Whether the sources specified in the objectSpecification object must exist in the assets being pulled. Use one of the following values:
- true. The objectSpecification objects are ignored if the sources don't exist in the assets that are included in the pull.
- false. An error occurs when an objectSpecification source doesn't exist in the assets that are included in the pull.
Default is false.
objectSpecification
List<Object>
No
Object specification for connection and runtime environments.
source
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the source object.
path
List<String>
Yes, if objectSpecification object is included
Include in the source object.
Name of the connection or runtime environment in the repository.
type
String
Yes, if objectSpecification object is included
Include in the source object.
Asset type. Use one of the following values:
- Connection
- AgentGroup
target
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the target object.
Include path and type or include ID. If path, type, and ID are included, ID takes precedence.
path
List<String>
Yes, if ID is not included
Include in the target object.
Name of the connection or runtime environment.
Use with type.
type
String
Yes, if ID is not included
Include in the target object.
Asset type.
Use with path.
Use one of the following values:
- Connection
- AgentGroup
id
String
Yes, if path and type are not included
Include in the target object.
ID of the target object.
additionalProviderFlags
Collection <complex type>
No
Additional object specifications.
Use key-value pairs to specify additional object specifications, such as in-out parameter values and sequence generator values.
POST response
If successful, a POST request returns the following information:
Field
Type
Description
pullActionId
String
ID for the pull operation.
status
Object
Status of the pull operation.
state
String
Returned in the status object.
Initial state of the pull operation. For a successful request, value will always be NOT_STARTED.
To request a pull operation for all changed assets in a commit made to a project-level repository, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pullByCommitHash Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
To request a pull operation for all changed assets in a commit and include connections and runtime environments, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pullByCommitHash Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
Use the checkout resource to check out a source-controlled object so that you can make changes to it. When you check out an object, the object is locked so that other users can't make changes to it.
You can check out multiple projects, folders, or assets in one request.
If multiple objects are included in the checkout and the checkout fails for any of them, none of the objects will be checked out. The objects that would have been successful will have a status of CANCELLED.
Descriptive status message for the checkout operation.
POST request examples
To request a checkout operation for a project and include all of the assets in the project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
To request a checkout operation for a project and include two of the assets in the project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
To request a checkout operation for an asset named Test_Mapping that's in the Default project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
Use the undoCheckout resource to undo a checkout. The object will revert to the last version that was pulled.
You can undo the checkout of an asset, project, or folder. You can also undo a checkout for all objects that were included in a checkout. If you are logged in as an administrator, you can undo a checkout performed by another user.
POST request
To undo a checkout, use the following URI:
/public/core/v3/undoCheckout
In the request, include the ID or the path and type for each object that you want to perform the undo checkout operation. Or, include a checkout operation ID to undo the checkout for all objects that were included in a checkout operation.
Note: Source control logs are retained for seven days. If the checkout occurred more than seven days ago, the checkout operation ID no longer exists so it can't be used in an undo checkout operation.
If you want an asset to use a different connection or runtime environment, you can map the connection or runtime environment to a connection or runtime environment in your organization using the objectSpecification object.
You can include the following fields in the request:
Field
Type
Required
Description
checkoutOperationId
String
No
Checkout operation ID. If specified, all assets that were included in the checkout operation will revert to their original state.
objects
List<Object>
No
Contains a list of all the objects to be included in the undo checkout operation.
id
String
Yes, if the object's path and type are not included and checkoutOperation ID is not included
Include in the objects object.
ID of the object.
path
List<String>
Yes, if the object's ID is not included and checkoutOperation ID is not included
Include in the objects object.
Full path of the object.
type
String
Yes, if the object's ID is not included and checkoutOperation ID is not included
To request an undoCheckout operation for an asset and map the source connection and runtime environment to the target connection and runtime environment, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/undoCheckout Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
- AI_SERVICE_CONNECTOR. Application Integration service connector.
- GUIDE. Application Integration guide.
- PROCESS_OBJECT. Application Integration process object.
- HUMAN_TASK. Application Integration human task.
includeContainerAssets
Boolean
-
Include in the objects object.
Whether all objects in a project or folder are included in the check-in. Use one of the following values:
- true. Include all objects in the project or folder.
- false. Do not include objects in the project or folder.
Default is false.
summary
String
Yes
Summary of the check-in.
Maximum length is 255 characters.
description
String
-
Description of the check-in.
POST response
If successful, a POST request returns the following information:
Field
Type
Description
Id
String
ID for the check-in operation.
status
Object
Status of the check-in operation.
state
String
Returned in the status object.
Initial state of the check-in operation. For a successful request, value will always be NOT_STARTED.
To see the status after the operation begins, use the sourceControlAction resource.
message
String
Returned in the status object
Descriptive status message for the check-in operation.
POST request examples for projects
You can request a check-in operation for one or more projects in a single POST request. To request a check-in operation for a project and include all of the assets in the project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkin Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
You can request a check-in operation for one asset in a POST request. To request a check-in operation for an asset named Test_Mapping that's in the Default project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkin Content-Type: application/json Accept: application/json INFA-SESSION-ID: <sessionId>
Use the commit resource to retrieve details about a commit from your repository.
GET request
To get the details for a commit, use the following URI:
/public/core/v3/commit/<commitHash>
You can include the following optional parameters in the URI:
Field
Type
Required
Description
searchCustomRepositories
Boolean
-
Whether to search project-level repositories if the commit hash wasn't found for the global repository.
repoConnectionId
String
-
Connection ID of the project-level repository to search.
To find the repository connection ID, you can send a repositoryConnection request. For more information, see <link to the new Getting repository connection details topic>
GET response
If successful, a GET request returns the following information:
Field
Type
Description
hash
String
Unique identifier for the commit. You can use this value in a pullByCommitHash request.
summary
String
Summary associated with the commit hash.
description
String
Detailed description associated with the commit hash.
username
String
Name of the user who performed the commit.
email
String
Email address of the user who performed the commit.
date
Date
The timestamp when the commit was submitted in the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
committer
String
The Git user who filed the commit.
changes
List <Object>
Contains change details for each object included in the commit.
id
String
Included in the changes object.
Global unique identifier for the object.
Included if the object currently exists in your organization.
appContextId
String
Included in the changes object.
ID of the object in context, used in REST API version 2 calls.
Included if the object currently exists in your organization.
name
String
Included in the changes object.
Name of the asset, project, or folder.
type
String
Included in the changes object.
Type of object.
path
List <String>
Included in the changes object.
Full path of the object.
oldPath
List <String>
Included in the changes object.
Remote repository path for the object before the commit. Included when the object was moved or renamed.
action
String
Included in the changes object.
Indicates the type of changes made to the object during the commit. Includes one of the following values:
- ADDED
- DELETED
- MODIFIED
- MOVED
GET response example
A GET response might look like the following example:
Use the commitHistory resource to get commit history for source-controlled objects in your organization.
You can request commit history for all source-controlled objects, specific projects or folders, or specific assets. You can also use query parameters to request commit history for all objects on a particular Explore page or a specified number of pages.
GET request
You can request the commit history for all of your organization's projects and assets or request the history for a particular project or asset.
To get commit history, use the following URI:
/public/core/v3/commitHistory?<query parameters>
To get the commit history for all objects in the organization, omit the query parameters.
To get the commit history for a particular project or asset, you can include the following query parameters in the URI:
Parameter
Type
Description
q
String
Query filter string. Include an object ID, project or folder name, or asset type.
perPage
String
Number of entries to include per page. Maximum of entries is 100.
Default is 100.
page
String
Show a specific page of results.
Default is page 1.
You can use the following fields to define the query filter:
Field
Type
Operators
Description
id
String
==
ID of the project, folder, or asset.
path
String
==
Project or path where the assets are located.
type
String
==
Asset type. Required to receive commit history for an asset.
Use the repositoryConnection resource to get repository details such as the repository connection ID for a given project ID or project name. You can get the repository details for one or more projects in one request.
Use the repository connection ID that's included in the response to send a pullByCommitHash request for objects in project-level repositories.
GET request
To get details about the repository connection for a given project, use the following URL:
/public/core/v3/repositoryConnection
You can include the following fields in the request:
Field
Type
Required
Description
projectIds
List of String
-
Project ID that you want to find the repository connection details for.
projectNames
List of String
-
Project name that you want to find the repository connection details for.
GET response
If successful, a GET request returns the following information:
Field
Type
Description
pullActionId
String
ID for the pull operation.
projectRepoConnections
List <Object>
Object that contains repository details for each project ID or project name included in the request.
projectId
String
Returned in the projectRepoConnections object.
ID of the project. Included when the project ID was included in the request.
projectNames
String
Returned in the projectRepoConnections object.
Name of the project. Included when the project name was included in the request.
gitRepositoryURL
String
Git repository URL.
gitRepositoryBranch
String
Git repository branch.
globalRepository
Boolean
Whether project is configured with a global Git repository. If true, repoConnectionId is null.
repoConnectionId
String
Repository connection ID for the project.
Null if the project isn't configured with a project-level Git repository.
GET request example
To request repository connection details for two project using project ID, the request might look like the following example: