Introduction IBM Cloud App Configuration is a centralized feature management and configuration service for use with web and mobile applications, microservices, and distributed environments. Instrument your applications with App Configuration SDKs, and use the App Configuration dashboard or App Configuration administrator API to define features flags, which are organized into collections and targeted to segments. Change feature flag states in the cloud to activate or deactivate features in your application or environment, often without restarting. - App Owners - Roll out features by segment and independent from code deployments. - Developers - Reduce source code branch complexity and troublesome merges by including untested or unfinished features behind a feature flag in your master branch. - Testers - Increase confidence that new features will smoothly transition to production by testing there. Use flags to activate untested features only for testers and QA personnel until it's time to release. Before you begin Make sure that you have access to a paid IBM Cloud account. Learn more about App Configurationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-getting-started. SDKs For more information about installation and technical concepts, see the 'README' document in the SDK. | Server SDKs | Client SDKs | Admin SDKs | | -- | -- | -- | | Node SDKhttps://github.com/IBM/appconfiguration-node-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-integrate-sdks | Android SDKhttps://github.com/IBM/appconfiguration-android-client-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-integrate-sdks-android | Go Admin SDKhttps://github.com/IBM/appconfiguration-go-admin-sdk | | Python SDKhttps://github.com/IBM/appconfiguration-python-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-python | JavaScript SDKhttps://github.com/IBM/appconfiguration-js-client-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-javascript | | | Go SDKhttps://github.com/IBM/appconfiguration-go-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-golang | React SDKhttps://github.com/IBM/appconfiguration-react-client-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-react | | | Java SDKhttps://github.com/IBM/appconfiguration-java-sdk \n Documentationhttps://cloud.ibm.com/docs/app-configuration?topic=app-configuration-ac-java | | | Installing the Go SDK Go modules recommended: Add the following import in your code, and then run go build or go mod tidy go import "github.com/IBM/appconfiguration-go-admin-sdk/appconfigurationv1" Go get bash go get -u github.com/IBM/appconfiguration-go-admin-sdk View on GitHub https://github.com/IBM/appconfiguration-go-admin-sdkhttps://github.com/IBM/appconfiguration-go-admin-sdk Endpoint URLs The following URLs represents the base URLs for the App Configuration API endpoints. When you call the API, use the URL that corresponds to the region where your service instance is deployed. Add the path for each method to form the complete API endpoint for your requests. <-- Regional public endpoints -- Dallas: https://us-south.apprapp.cloud.ibm.com Washington DC: https://us-east.apprapp.cloud.ibm.com London: https://eu-gb.apprapp.cloud.ibm.com Sydney: https://au-syd.apprapp.cloud.ibm.com Frankfurt: https://eu-de.apprapp.cloud.ibm.com Toronto: https://ca-tor.apprapp.cloud.ibm.com Tokyo: https://jp-tok.apprapp.cloud.ibm.com Osaka: https://jp-osa.apprapp.cloud.ibm.com Madrid : https://eu-es.apprapp.cloud.ibm.com Sao Paulo: https://br-sao.apprapp.cloud.ibm.com Montreal: https://ca-mon.apprapp.cloud.ibm.com Chennai: https://in-che.apprapp.cloud.ibm.com Mumbai: https://in-mum.apprapp.cloud.ibm.com <-- Regional private endpoints -- If you have enabled service endpoints in your account, you can send API requests over the IBM Cloud® private network at the following base endpoint URLs. Dallas: https://private.us-south.apprapp.cloud.ibm.com Washington DC: https://private.us-east.apprapp.cloud.ibm.com London: https://private.eu-gb.apprapp.cloud.ibm.com Sydney: https://private.au-syd.apprapp.cloud.ibm.com Frankfurt: https://private.eu-de.apprapp.cloud.ibm.com Toronto: https://private.ca-tor.apprapp.cloud.ibm.com Tokyo: https://private.jp-tok.apprapp.cloud.ibm.com Osaka: https://private.jp-osa.apprapp.cloud.ibm.com Madrid : https://private.eu-es.apprapp.cloud.ibm.com Sao Paulo: https://private.br-sao.apprapp.cloud.ibm.com Montreal: https://private.ca-mon.apprapp.cloud.ibm.com Chennai: https://private.in-che.apprapp.cloud.ibm.com Mumbai: https://private.in-mum.apprapp.cloud.ibm.com The following table details the location where the App Configuration actions run, data stored and replicated: | Location | Location where App Configuration actions run | Data is stored in | Data is replicated to | |-------------|------|--------|-------| | Dallas | All App Configuration actions run in the Dallas us-south location. | All metadata for the app's features are stored in the Dallas us-south location. | Data is replicated between three zones within us-south for high-availability. | | Washington DC | All App Configuration actions run in the Washington DC us-east location. | All metadata for the app's features are stored in the Washington DC us-east location. | Data is replicated between three zones within us-east for high-availability. | | London | All App Configuration actions run in the London eu-gb location. | All metadata for the app's features are stored in the London eu-gb location. | Data is replicated between three zones within eu-gb for high-availability. | | Sydney | All App Configuration actions run in the Sydney au-syd location. | All metadata for the app's features are stored in the Sydney au-syd location. | Data is replicated between three zones within au-syd for high-availability. | | Frankfurt | All App Configuration actions run in the Frankfurt eu-de location. | All metadata for the app's features are stored in the Frankfurt eu-de location. | Data is replicated between three zones within eu-de for high-availability. | | Toronto | All App Configuration actions run in the Toronto ca-tor location. | All metadata for the app's features are stored in the Toronto ca-tor location. | Data is replicated between three zones within ca-tor for high-availability. | | Tokyo | All App Configuration actions run in the Tokyo jp-tok location. | All metadata for the app's features are stored in the Tokyo jp-tok location. | Data is replicated between three zones within jp-tok for high-availability. | | Osaka | All App Configuration actions run in the Osaka jp-osa location. | All metadata for the app's features are stored in the Osaka jp-osa location. | Data is replicated between three zones within jp-osa for high-availability. | | Madrid | All App Configuration actions run in the Madrid eu-es location. | All metadata for the app's features are stored in the Madrid eu-es location. | Data is replicated between three zones within eu-es for high-availability. | | Sao Paulo | All App Configuration actions run in the Sao Paulo br-sao location. | All metadata for the app's features are stored in the Sao Paulo br-sao location. | Data is replicated between three zones within br-sao for high-availability. | | Montreal | All App Configuration actions run in the Montreal ca-mon location. | All metadata for the app's features are stored in the Montreal ca-mon location. | Data is replicated between three zones within ca-mon for high-availability. | | Chennai | All App Configuration actions run in the Chennai in-che location. | All metadata for the app's features are stored in the Chennai in-che location. | Data is replicated between three zones within in-che for high-availability. | | Mumbai | All App Configuration actions run in the Mumbai in-mum location. | All metadata for the app's features are stored in the Mumbai in-mum location. | Data is replicated between three zones within in-mum for high-availability. | Base URL https://{region}.apprapp.cloud.ibm.com Example request to a Dallas endpoint: sh curl -H "Authorization:Bearer {token}" -X "https://us-south.apprapp.cloud.ibm.com" Replace {token} and {guid} in this example with the values for your particular API call. Example request to a Dallas endpoint: go import "encoding/json" "fmt" "github.com/IBM/go-sdk-core/v5/core" ac "github.com/IBM/appconfiguration-go-admin-sdk/appconfigurationv1" func main { appConfigurationService, err := ac.NewAppConfigurationV1&ac.AppConfigurationV1Options { URL: "https://us-south.apprapp.cloud.ibm.com", Authenticator: & core.IamAuthenticator { ApiKey: "Method Path Summary GET /apprapp/feature/v1/instances/{guid}/environments Get list of Environments POST /apprapp/feature/v1/instances/{guid}/environments Create Environment PUT /apprapp/feature/v1/instances/{guid}/environments/{environment_id} Update Environment GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id} Get Environment DELETE /apprapp/feature/v1/instances/{guid}/environments/{environment_id} Delete Environment GET /apprapp/feature/v1/instances/{guid}/collections Get list of Collections POST /apprapp/feature/v1/instances/{guid}/collections Create Collection PUT /apprapp/feature/v1/instances/{guid}/collections/{collection_id} Update Collection GET /apprapp/feature/v1/instances/{guid}/collections/{collection_id} Get Collection DELETE /apprapp/feature/v1/instances/{guid}/collections/{collection_id} Delete Collection GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features Get list of Features POST /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features Create Feature PUT /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id} Update Feature PATCH /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id} Update Feature Values GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id} Get Feature DELETE /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id} Delete Feature PUT /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/toggle Toggle Feature PATCH /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rollout Stop Feature Rollout POST /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules Create Feature Rule GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules Get All rules for feature GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules/{rule_id} Get rule for feature by rule id PATCH /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules/{rule_id} Update Feature rule DELETE /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules/{rule_id} Delete Feature rule PATCH /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules/{rule_id}/rollout Stop Feature Rule Rollout PATCH /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/features/{feature_id}/rules_order Update Feature rule order GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/properties Get list of Properties POST /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/properties Create Property PUT /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/properties/{property_id} Update Property PATCH /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/properties/{property_id} Update Property values GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/properties/{property_id} Get Property DELETE /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/properties/{property_id} Delete Property GET /apprapp/feature/v1/instances/{guid}/segments Get list of Segments POST /apprapp/feature/v1/instances/{guid}/segments Create Segment PUT /apprapp/feature/v1/instances/{guid}/segments/{segment_id} Update Segment GET /apprapp/feature/v1/instances/{guid}/segments/{segment_id} Get Segment DELETE /apprapp/feature/v1/instances/{guid}/segments/{segment_id} Delete Segment GET /apprapp/feature/v1/instances/{guid}/gitconfigs Get list of Git configs POST /apprapp/feature/v1/instances/{guid}/gitconfigs Create Git config PUT /apprapp/feature/v1/instances/{guid}/gitconfigs/{git_config_id} Update Git Config GET /apprapp/feature/v1/instances/{guid}/gitconfigs/{git_config_id} Get Git Config DELETE /apprapp/feature/v1/instances/{guid}/gitconfigs/{git_config_id} Delete Git Config PUT /apprapp/feature/v1/instances/{guid}/gitconfigs/{git_config_id}/promote Promote configuration PUT /apprapp/feature/v1/instances/{guid}/gitconfigs/{git_config_id}/restore Restore configuration GET /apprapp/feature/v1/instances/{guid}/integrations Get list of integrations POST /apprapp/feature/v1/instances/{guid}/integrations Create integration GET /apprapp/feature/v1/instances/{guid}/integrations/{integration_id} Get integration DELETE /apprapp/feature/v1/instances/{guid}/integrations/{integration_id} Delete integration GET /apprapp/feature/v1/instances/{guid}/originconfigs Get list of Origin Configs PUT /apprapp/feature/v1/instances/{guid}/originconfigs Update Origin Configs GET /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/workflowconfigs Get Workflow Config POST /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/workflowconfigs Create Workflow config PUT /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/workflowconfigs Update Workflow config DELETE /apprapp/feature/v1/instances/{guid}/environments/{environment_id}/workflowconfigs Delete Workflow config GET /apprapp/feature/v1/instances/{guid}/workflow/configs List Workflow Config POST /apprapp/feature/v1/instances/{guid}/workflow/configs Create Approval Workflow config GET /apprapp/feature/v1/instances/{guid}/workflow/configs/{workflow_config_id} get single Approval Workflow Config PUT /apprapp/feature/v1/instances/{guid}/workflow/configs/{workflow_config_id} Update Approval Workflow config DELETE /apprapp/feature/v1/instances/{guid}/workflow/configs/{workflow_config_id} Delete Approval Workflow config PUT /apprapp/feature/v1/instances/{guid}/workflow/configs/{workflow_config_id}/toggle Toggle Approval Workflow config POST /apprapp/feature/v1/instances/{guid}/workflow/configs/{workflow_config_id}/test Test an Approval Workflow config POST /apprapp/feature/v1/instances/{guid}/config Import instance configuration GET /apprapp/feature/v1/instances/{guid}/config Export instance configuration PUT /apprapp/feature/v1/instances/{guid}/config Promote or Restore snapshot configuration GET /apprapp/feature/v1/instances/{guid}/config/status/{reference_id} Get status of instance configuration import/export GET /apprapp/config_aggregator/v1/instances/{guid}/configs List configurations POST /apprapp/config_aggregator/v1/instances/{guid}/configs/query List configurations for set of crn(s) PUT /apprapp/config_aggregator/v1/instances/{guid}/settings Update settings GET /apprapp/config_aggregator/v1/instances/{guid}/settings Get settings GET /apprapp/config_aggregator/v1/instances/{guid}/resource_collection_status Get resource collection status POST /apprapp/config_aggregator/v1/instances/{guid}/reconcile Manual reconcile POST /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/query Query configs GET /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/history List chat history POST /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/history Create chat history PUT /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/history Update chat history GET /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/jobs List jobs POST /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/jobs Create job GET /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/jobs/{job_id} Get job GET /apprapp/config_aggregator/v1/instances/{guid}/nlp_resource_query/jobs/{job_id}/result Download job result