This repository contains an OpenAPI specification for LaunchDarkly's REST API.
This REST API is for custom integrations, data export, or automating your feature flag workflows. DO NOT use this client library to add feature flags to your web or mobile application. To integrate feature flags with your application, please see the SDK documentation
This project uses YAML file pointers to create the directory architecture described here:
Compiling the spec
The spec is joined from multiple files using a multi-file Swagger tool. To compile the just spec run
Alternatively, you can test a multi-file Swagger spec using VSCode, or by following these instructions for the online editor:
Testing the spec
We use the spec to build some internals tools in go. Tests for other specs are forthcoming.
Server/client code for the API can be automatically generated. To generate the code:
brew install swagger-codegen
Publishing code changes to platform-specific code repositories
Publishing codes changes is done by setting up the source repos for each client code repo as git submodules of the
targets directory. This is done by running
make load_prior_targets to set up the git submodules.
make can be run to layer changes on top of the existing repos, followed by
make push to push the changes to
make publish will publish changes to the language-specific package managers.
Automatic releases on CircleCI
On CircleCI, builds tagged with
#.#.#[optional suffix] (e.g. 2.0.1 or 2.0.3-test) will trigger the publishing job
that will push new code and upload new packages. For private development, we use a private version of this repository
and we do not publish things like npm packages for the private repo. This job will also create a release on GitHub
for the current repo, containing the openapi specs and an archive of the generated code.