Data Source Profile
When sending an API request to query the data through SQL file logistic, also should check the data source ( e.g: Database, Warehouse ) has connected, so VulcanSQL needs you to define the Data Source Profile.
Define profile in independent YAML files
You could create independent YAML files to define data sources and set the filePath in the profiles options of the project config:
# pg-profile.yaml
- name: pg
  type: postgres
  allow: '*'
  connection:
    host: example.com
    user: vulcan
    password: secret
    database: vulcan
    port: 5432
------------------------------------
# duck-profile.yaml
name: duck
type: duckdb
connection:
   persistent-path: ./test-data/moma.db
   log-queries: true
   log-parameters: true
allow: '*'
-------------------------
# vulcan.yaml (project config)
extensions:
  postgres: '@vulcan-sql/extension-driver-duckdb'
  duckdb: '@vulcan-sql/extension-driver-duckdb'
profiles:
  - ./pg-profile.yaml
  - ./duck-profile.yaml
You should make sure you have installed the data source driver package and declared the module name under the extensions of the project config.
Profile fields
In. this Profile, we should give these fields:
- name- The- nameis the data source name for recognizing so that API Schema could set the name to know where the data source the API request queries the result from. Like above- duckdb-profile.yamlexample, the name is- duck, so you could set the- duckin- profiles/- profilein the API Schema to specify what data source the query is from.
- type- It's a data source type, each data source type uses the- module-nameunder the- extensionsconfig to be the- typefor recognizing, the above sample you could see.
- connection- The needed information to make the connection built, you should check what the connection fields need in each external extension of the data, e.g: @vulcan-sql/extension-driver-pg npm.
- allow- The- allowfield could make our Data API could query the data result from different data sources according to whether the user has permission or not. The API Schema- profiles/- profilefields have shown some examples. For the- allowconfiguration rule, you could see the Authorization for introducing detail.