This operation deploys Configurations like API Products, Developers, Developer Apps, Flow hooks, Extensions, Mask Config, Custom Roles, Cache, KVM, Target Server, and Resource Files, to the Apigee host by using the maven apigee config plugin. You must have built artifacts as a zip file or expanded folder, see Extract and Save Artifacts workflow on FlexDeploy - Apigee Plugin Guide page under Example Workflows.
The plugin unzips any zipped file within the artifacts and will search for the edge.json file or predefine folders(org/env/api) and deploy it to Apigee. This operation automatically generates a pom.xml and parent-pom.xml necessary to use with Maven for deployment. If it is already present, it will be replaced. The new pom contains property replacement tokens in many places. Passwords and other values will not be stored in the file.
Small API projects can use the single file format in edge.json to manage their config. Large, complex projects with several config entities can use the multi-file format to organize config in source control. See Special Considerations below for details on the folder structure.
Either FDAPG_CLOUD_ACCOUNT_CODE target property value or FDAPG_INP_CLOUD_ACCOUNT_CODE plugin input value should exist. When both exists, the plugin input value will take precedence. See Creating/Editing a Cloud Account and Provider for details on how to setup Cloud Account for Apigee.
Target Properties
Property Name | Property Code | Required | Description |
---|---|---|---|
Apigee Environment Name |
| Yes | The environment name which the proxy or shared flow or Configurations will be deployed to. |
Apigee Edge Config Deploy Option |
| Yes | This option indicates the mode of deployment for the configurations. (please refer to the Note section). Update is default, other options are create, delete and sync. Note: This property is required only for Apigee Edge. |
Apigee X Config Deploy Option |
| Yes | This option indicates the mode of deployment for the configurations. Update is the default option, other options are create, delete, and sync. Note: This property is required only for Apigee X. |
Apigee Account |
| No | The Apigee account with all the required properties for running Apigee Instance. Note: "On the basis of selected Cloud Account type plugin will perform the operation and do the deployment for Apigee X or Apigee Edge." |
Project Properties
Property Name | Property Code | Required | Description |
---|---|---|---|
Apigee Configuration File Path |
| No | Path to the configuration file. If a relative path is given, a path inside of the FD_ARTIFACTS_DIR will be assumed. If no path is given, edge.json will be used if it exists in the root of FD_ARTIFACTS_DIR. |
Apigee Configuration file Directory |
| No | Path to directory containing the multi-file configuration. If a relative path is given, a path inside of the FD_ARTIFACTS_DIR will be assumed. If no path is given, env/org/api folders will be used if it exists in the root of FD_ARTIFACTS_DIR. For more information on multi-file Apigee Config Deployment: https://github.com/apigee/apigee-config-maven-plugin?tab=readme-ov-file#multi-file-config |
Cloud Account Properties
Apigee Edge
Property Name | Property Code | Required | Description |
---|---|---|---|
Apigee Org Name |
| Yes | The org name of the apigee account. |
Apigee Host URL |
| Yes | Apigee Host URL. |
Apigee Authentication Type |
| Yes | Apigee Authentication Type |
Apigee Username |
| Yes | The username of the apigee account. |
Apigee Password |
| Yes | The password of the apigee account. |
Apigee Token URL |
| No | Apigee Token URL. |
Apigee MFA Token |
| No | Apigee Multi Factor Authentication Token |
Apigee Bearer |
| No | Apigee Bearer Token (Access Token) |
Apigee Refresh |
| No | Apigee Refresh Token |
Apigee Client Id |
| No | Apigee Client Id |
Apigee Client Secret Key |
| No | Apigee Client Secret Key |
Apigee X
Please refer to the link for more information Set Up of Apigee X | Setting up the Cloud Account for Apigee X
Property Name | Property Code | Required | Description |
---|---|---|---|
Apigee Org Name |
| Yes | The org name of the apigee account. |
Apigee Host URL |
| Yes | Apigee Host URL. |
Apigee Bearer |
| No | Apigee Bearer Token (Access Token) this takes precedence over service account file. |
Service Account File |
| No | Content of the service account file. |
Apigee Portal Site Id |
| No | Apigee Portal Site ID |
Apigee Client Secret Key |
| No | Apigee Google Token Email |
Inputs
Input Name | Input Code | Required | Description |
---|---|---|---|
Apigee Account |
| No | The Apigee account with all the required properties for running Apigee Instance. Note: "On the basis of selected Cloud Account type plugin will perform the operation and do the deployment for Apigee X or Apigee Edge." |
Additional Deploy Arguments |
| No | Space-delimited list of additional Maven arguments (e.g. -e -X). |
Artifacts
This operation consumes artifacts from the artifacts repository.
Endpoint Selection
This operation does not require any specific external libraries or tools; hence you can add any endpoint to target configuration. We recommend use of LOCALHOST endpoint for simplicity. This operation will select all endpoints associated to the target.
Endpoint Execution
This operation will execute on any one of the selected endpoints and will be random in the determination of which one.
Special Considerations
Projects with several config entities can utilize the multi-file structure to organize config while keeping individual file sizes within manageable limits. The plugin requires the use of specific file names and directories to organize config (multi-file config). To make use of this structure, use the FDAPG_CONFIG_DIR_PATH
project property.
├── api
│ ├── forecastweatherapi
│ │ ├── resourceFiles
│ │ │ ├── jsc
│ │ │ │ ├── test.js
│ │ ├── kvms.json
│ │ └── resourcefiles.json
│ └── oauth
│ ├── kvms.json
│ └── maskconfigs.json
├── env
│ ├── prod
│ │ ├── caches.json
│ │ └── flowhooks.json
│ └── test
│ ├── caches.json
│ ├── kvms.json
│ ├── targetServers.json
│ └── virtualHosts.json
│ └── references.json
│ └── keystores.json
│ └── aliases.json
└── org
├── apiProducts.json
├── developerApps.json
├── developers.json
├── kvms.json
├── companies.json
├── companyApps.json
├── reports.json
└── maskconfigs.json
└── userroles.json
Projects with fewer config entities can use the single file edge.json format to capture all configs of an API project. The edge.json file organizes config into 3 scopes corresponding to the scopes of config entities that can be created in Edge (single file config). The plugin looks for edge.json in FD_ARTIFACTS_DIR
by default. If your config file is in a different directory, or the file is not names edge.json, use the FDAPG_CONFIG_FILE_PATH
project property.
envConfig
orgConfig
apiConfig
Note: Update Developer App and Company App For Apigee Edge (from v1.4.5 onwards)
When you select Apigee DeployOption as the update(FDAPG_CONFIG_OPTION
) and if the payload passed includes the apiProducts, then the Management server will create new credentials. To avoid this, we must pass -Dapigee.app.ignoreAPIProducts=true. as additional arguments in the operation input.
Please note this is applicable only for apigee.config.options=update.
Note: Update Developer App and Company App For Apigee X (from v2.1.2 onwards)
When you select Apigee DeployOption as the update(FDAPG_X_CONFIG_OPTION
) and if the payload passed includes the apiProducts, then the Management server will create new credentials. To avoid this, we must pass -Dapigee.app.ignoreAPIProducts=true. as additional arguments in the operation input.
Please note this is applicable only for apigee.config.options=update.
Reference Guide
These files are sample files provided by Apigee for Apigee Edge:
https://github.com/apigee/apigee-deploy-maven-plugin/tree/1.x/samples
https://github.com/apigee/apigee-config-maven-plugin/tree/1.x/samples
These files are sample files provided by Apigee for Apigee X:
https://github.com/apigee/apigee-deploy-maven-plugin/tree/main/samples
https://github.com/apigee/apigee-config-maven-plugin/tree/main/samples