Importing is only supported for database backed Flipt instances.

Both flipt import and flipt export support the --address and --token flags to enable transferring data to and from Flipt instances via the API instead of requiring a direct database connection.

flipt import --address --token static-api-token

flipt export --address grpc://

Both HTTP and gRPC are supported by the --address flag.


To import data into Flipt, use the flipt import command. You can either import from a file or from STDIN.

To import from STDIN, Flipt requires the --stdin flag:

cat flipt.yaml | flipt import --stdin

If not importing using --stdin, Flipt requires the file to be imported as an argument:

flipt import flipt.yaml

Namespaces are inferred from the YAML documents themselves. If a namespace your document refers to doesn’t exist in the database, it will be created.

This command supports the --drop flag that will drop all data in your Flipt database tables before importing. This is to ensure that no data collisions occur during the import.

Be careful when using the --drop flag as it will immediately drop all data and there is no undo. It’s recommended to first backup your database before running this command just to be safe.

See the CLI reference for more information on the import command.


To export Flipt data, use the flipt export command.

By default, export will output to STDOUT:

$ flipt export

- key: new-contact-page
  name: New Contact Page
  description: Show users our Beta contact page
  enabled: true
  - key: blue
    name: Blue
  - key: green
    name: Green

You can also export to a file using the -o filename or --output filename flags:

flipt export -o flipt.yaml

By default, Flipt will export from the default namespace. Use the flag --namespaces to export from a different namespace or multiple namespaces.

flipt export --namespaces production

The --all-namespaces flag is a boolean flag that tells export to export all namespaces.

See the CLI reference for more information on the export command.