Command: generate
Removed in 2.94.0. The fides generate command was removed in the 2.94.0 release, along with the POST /api/v1/generate API it called. It connected to databases and cloud accounts through raw connection details rather than a saved integration. Create datasets from a saved integration and its discovery monitors, or in the UI, and add systems through the data map, instead. This page is retained for reference by earlier releases.
The fides generate command is a multipurpose tool used to connect to a specified database/service and automatically generate Fides resources in the Fides YAML format and style. This command generates a YAML resource file based on the data source's schema. By default the documents generated by this command are written to the .fides working directory.
Usage
Usage: fides generate <commands> [options] path/to/destination.yml
This command accepts several subcommands depending on the resource being generated and the data source type. For example:
Generating a dataset accepts either db (database) or gcp (Google Cloud Platform) as the type, followed by connection information and the destination to write the generated dataset.
fides generate dataset [db || gcp] {connection_information} .fides/destination.yamlGenerating a system accepts either aws (Amazon Web Services) or okta (Okta Sign-on) as the type, followed by connection information and the destination to write the generated dataset.
fides generate system [aws || okta] {connection_information} .fides/destination.yamlHere are the full list of accepted commands, subcommands and arguments:
dataset- Create a dataset resource from the connected data source, such as a database (e.g. SQL).db- Connect to a database directly via a SQLAlchemy-style connection. Accepted options for this command:--credentials-id- Use connection information already defined in thefides.tomlconfig by specifying the key for the associated credentials in the config file.--connection-string- Use a connection string to connect to a database.--include-null- Include attributes in the dataset YAML that would otherwise be null in the schema.
gcp- Connect to a Google Cloud Platform data source.bigquery- Connect to a BigQuery dataset directly via a SQLAlchemy.--credentials-id- Use connection information already defined in thefides.tomlconfig by specifying the key for the associated credentials in the config file.--keyfile-path- Path to load BigQuery credentials from a file on your local machine.--include-null- Include attributes in the dataset YAML that would otherwise be null in the schema.
system- Create system resources from the connected source, such as scanning infrastructure (e.g. AWS) or sign-on systems (e.g. Okta).aws- Connect to an AWS account and generate a system YAML file. Accepted options for this command:--credentials-id- Use AWS connection information already defined in thefides.tomlconfig by specifying the key for the associated credentials in the config file.--access_key_id- Specify an access key id to connect to AWS. Connecting to AWS requires the options:--access_key_id,--secret_access_keyand--region.--secret_access_key- Specify the secret access key for connecting to AWS. Connecting to AWS requires the options:--access_key_id,--secret_access_keyand--region.--region- Specify the region to connect to for scanning AWS. Connecting to AWS requires the options:--access_key_id,--secret_access_keyand--region.--include-null- Include attributes in the system YAML that would otherwise be null for this system.
okta- Connect to an Okta instance and generate a system YAMl file.--credentials-id- Use Okta connection information already defined in thefides.tomlconfig by specifying the key for the associated credentials in the config file.--org-url- Specify the organization's Okta URL to connect to Okta. Connecting to Okta requires the options:--org-urland--token.--token- Specify the token to connect to Okta. Connecting to Okta requires the options:--org-urland--token.--include-null- Include attributes in the system YAML that would otherwise be null for this system.
Running this command should result in output that resembles the following examples.
Examples: Generating Datasets
Datasets are the typically the most valuable resources for developers working regularly with Astralis. The generate dataset command allows you to quickly create an Astralis formatted dataset from a given database to make it easy to identify sensitive data in your systems. For more in-depth details on datasets, check out the Astralis Datasets tutorial.
Example: Generate a Dataset from a database using a connection config file
This example uses connection details stored in the fides.toml to connect to a database and generate a dataset at the location .fides/database.yml.
In this example, pg-credentials is the key that represents the credentials in the configuration file. For more in-depth details on using configuration files, check out the Astralis Configuration tutorial.
$ fides generate dataset db \
--credentials-id "pg-credentials" .fides/database.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/database.ymlExample: Generate a Dataset from a database using a connection string
This example connects to the database and generates a dataset at the location .fides/database.yml
$ fides generate dataset db \
--connection-string postgresql://username:password@localhost:5432/database .fides/database.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/database.ymlExample: Generate a Dataset from BigQuery using a connection config file
This example uses connection details stored in the fides.toml to connect to a BigQuery data warehouse and generate a dataset at the location .fides/datawarehouse.yml.
In this example, bq-credentials is the key that represents the credentials in the configuration file. For more in-depth details on using configuration files, check out the Astralis Configuration tutorial.
$ fides generate dataset gcp bigquery \
--credentials-id "bq-credentials" .fides/datawarehouse.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/datawarehouse.ymlExample: Generate a Dataset from BigQuery using a service account key file
This example uses BigQuery service account credentials to connect to a BigQuery data warehouse and generate a dataset at the location .fides/datawarehouse.yml. For more information on BigQuery service account key files, visit Google Cloud's Service Account guide.
$ fides generate dataset gcp bigquery \
--kefile-path "path/to/service_account.json" .fides/datawarehouse.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/datawarehouse.ymlExample: Include null attributes when generating a dataset
This example uses the --include-null flag so that the generated dataset includes all null attributes.
$ fides generate dataset db \
--credentials-id "pg-credentials" \
--include-null .fides/database.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/database.ymlExamples: Generating System YAML
System YAMLs identify and describe the various systems that data flows through in an organization. The generate system command enables you to rapidly create a system resources YAML file by scanning infrastructure and sign-on providers. For more in-depth details on systems, check out the Astralis Systems tutorial.
Example: Generate Systems by scanning AWS using a connection config file
This example uses connection details stored in the fides.toml to connect to and scan an AWS account, and generate a manifest at the location .fides/systems.yml of all detected systems.
In this example, aws-credentials is the key that represents the credentials in the configuration file. To learn more about configuration files, check out the Astralis Configuration tutorial.
$ fides generate system aws \
--credentials-id "aws-credentials" .fides/systems.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/systems.ymlExample: Generate Systems by scanning AWS using credentials arguments
This example passes connection details as arguments to connect to an AWS account, scan for systems in AWS, and generate a system manifest at the location .fides/systems.yml.
$ fides generate system aws \
--access_key_id "AWS-ACCESS-KEY" \
--secret_access_key "AWS-SECRET-KEY" \
--region "AWS-REGION" .fides/systems.yml
Loaded config from: .fides/fides.toml
Generated system manifest written to .fides/systems.ymlExample: Generate Systems by scanning Okta using a connection config file
This example uses connection details stored in the fides.toml to connect to an Okta server, scan for systems in Okta, and generate a system manifest at the location .fides/systems.yml.
In this example, okta-credentials is the key that represents the credentials in the configuration file. To learn more about configuration files, check out the Astralis Configuration tutorial.
$ fides generate system okta \
--credentials-id "okta-credentials" .fides/systems.yml
Loaded config from: .fides/fides.toml
Generated system manifest written to .fides/systems.ymlExample: Generate Systems by scanning Okta using credentials arguments
This example passes connection details as arguments to connect to an Okta server, scan for systems in Okta, and generate a system manifest at the location .fides/systems.yml.
$ fides generate system okta \
--org-url "OKTA-URL" \
--token "OKTA-TOKEN" .fides/systems.yml
Loaded config from: .fides/fides.toml
Generated system manifest written to .fides/systems.ymlExample: Include null attributes when generating a system
This example uses the --include-null flag so that the generated system includes all null attributes.
$ fides generate system aws \
--credentials-id "aws-credentials" \
--include-null .fides/systems.yml
Loaded config from: .fides/fides.toml
Generated dataset manifest written to .fides/systems.yml