Skip to main content

Package Configuration

The package configuration is the central configuration file used by the DataSQRL command. The package configuration declares dependencies, configures the engines in the data pipeline, sets compiler options, and provides package information.

package.json
{
"dependencies" : {
"datasqrl.seedshop" : {
"version" : "0.1.0",
"variant" : "dev"
}
},
"engines" : {
"streams" : {
"name" : "flink"
},
"database" : {
"name" : "jdbc",
"url" : "postgresql://localhost:5432/datasqrl",
"driver" : "org.postgresql.Driver",
"dialect" : "postgres",
"database" : "datasqrl"
}
},
"compiler" : {
"errorSink" : "print.errors",
"debugSink" : "print"
},
"package": {
"name": "datasqrl.tutorials.Quickstart",
"version": "0.1.0",
"variant": "dev",
"description": "Quickstart tutorial for datasqrl.com"
}
}

This is an example package configuration for our Quickstart tutorial. Each section of the configuration file is described in more detail below.

Dependencies

dependencies is a map of all packages that a script depends on. The name of the dependency is the key in the map and the associated value defines the dependency by version and variant.

{
"dependencies": {
"datasqrl.seedshop": {
"version": "0.1.0",
"variant": "dev"
}
},
...
}

This example declares a single dependency datasqrl.seedshop. The DataSQRL packager retrieves the datasqrl.seedshop package from the repository for the given version "0.1.0" and "dev" variant and makes it available for the compiler. The variant is optional and defaults to default.

Learn more about the repository and how dependencies are retrieved.

Engines

engines is a map of engine configurations by engine name that the compiler uses to instantiate the engines in the data pipeline. The DataSQRL compiler produces an integrated data pipeline against those engines. DataSQRL expects that a stream and database engine is configured as shown in the example above.

When you use the DataSQRL command without specifying an engine, DataSQRL will instantiate default engines for you. Learn more about the build process.

The engine configuration depends on each engine. Look up the engine for more information.

Compiler

The compiler configuration contains options to control the behavior of the compiler.

Field NameDescriptionRequired?
errorSinkErrors in the ingested input data are produced to the table sink defined by this export path. Defaults to print.errorsNo
debugSinkWhen debugging is enabled, change streams of all tables defined in the SQRL script are exported to the sink defined by this export path. Defaults to print.No
debugTablesLimits the exported change streams during debugging to the tables in this list, if the list is non-empty.No

Package Information

The package section of the configuration provides information about the package or script. The whole section can be omitted when compiling or running a script. It is required when publishing a package to the repository.

{
"package": {
"name": "datasqrl.tutorials.Quickstart",
"version": "0.1.0",
"variant": "dev",
"description": "Quickstart tutorial for datasqrl.com",
"homepage": "https://www.datasqrl.com/docs/getting-started/quickstart"
}
}
Field NameDescriptionRequired?
nameName of the package. The package name should start with the name of the individual or organization that provides the package.Yes
versionThe version of the package. We recommend to use semantic versioning.Yes
variantThe variant of the package if multiple variants are available. Defaults to default.No
latestIf this is the latest version of this package. DataSQRL uses the latest version when looking up missing packages on import. Defaults to false.No
descriptionA description of the package.No
licenseThe license used by this package.No
documentationLink that points to documentation for this packageNo
homepageLink that points to the homepage for this packageNo