Managing project files
Upload, organize, and reference project-scoped files such as TLS certificates, connector JARs, and configuration bundles from Cloudera SQL Stream Builder.
Project files are artifacts stored with a project. You can upload certificates, Hive or Iceberg configuration directories, connector JARs, and other files that Flink jobs and Cloudera SQL Stream Builder resources need at runtime. Files appear under the Files node in the Project Explorer.
Configure remote artifact storage in the Helm chart with
ssb.storageConfiguration so uploaded files are available to Flink job
pods. See SSB service configurations and Extensibility.
You can create folders only at the project root. Nested folders are not supported. Upload one or more files at a time to the root or to an existing folder. A file at the project root cannot use the same name as a folder at the root, and vice versa.
Create a folder
Upload files
Delete files or folders
Reference project files in SQL and configuration properties
Some connector and catalog properties accept a project file token instead of a fixed path on the Flink image. In the console UI, use the following format:
-
File at the project root:
ssb.project-file:filename -
File inside a folder:
ssb.project-file:foldername/filename -
Project folder (for example a Hive configuration directory uploaded as a folder):
ssb.project-file:foldername
At job submission, Cloudera SQL Stream Builder resolves the token to the staged
project file path for the Flink job. This pattern is commonly used for properties such as
hive-conf-dir on Iceberg catalogs when the Hive configuration directory is
uploaded as a project folder.
In CREATE TABLE, CREATE VIEW, and catalog DDL, use a
string literal of the form
'${ssb.project-file:path}'. The
path follows the same rules as in the console (root file, file in a
folder, or a configuration folder). You can also use these placeholders in Flink job
configuration properties where supported.
The following example creates a Kafka table that references a TLS truststore at the project root:
CREATE TABLE kafka_ssl (
id STRING,
payload STRING
) WITH (
'connector' = 'kafka',
'topic' = 'events',
'properties.ssl.truststore.location' = '${ssb.project-file:client.truststore.jks}',
'properties.security.protocol' = 'SSL'
);
The following example registers an Iceberg catalog that uses a Hive configuration folder
uploaded as hive-conf:
CREATE CATALOG iceberg_hive WITH (
'type' = 'iceberg',
'catalog-type' = 'hive',
'hive-conf-dir' = '${ssb.project-file:hive-conf}'
);
Select project files in the UI
Path fields in selected resource editors support either a project file or a filesystem path on the Flink image. You cannot combine both for the same field.
When a selector is available, choose an uploaded project file from the list. To use a file that is already on the Flink image, enter the full path in the text field instead.
Kafka data sources expose this pattern for TLS material when custom truststore settings are enabled:
Kafka TrustStore
Kafka KeyStore (Optional)
Similar selectors appear on other path properties that reference project files. When you upgrade from an earlier Cloudera SQL Stream Builder release, existing path-based values are preserved until you change them to a project file.
