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.

  1. Open a project in Cloudera SQL Stream Builder.
  2. In the Project Manager, select Explorer.
  3. Expand Files.

Create a folder

  1. On the Files node, open the action menu and click Create Folder.

    The Create Folder dialog opens.

  2. Enter a Folder Name and click Create.

    Folder names cannot contain slashes. The new folder appears under Files.

Upload files

  1. On the Files node or on a folder under Files, open the action menu and click Upload Files.

    The Upload Files dialog opens.

  2. Optional: In Folder, choose Root or an existing folder.

    When you start upload from a folder node, that folder is selected by default.

  3. Click Select Files, choose one or more files, and click Upload.

    Uploaded files appear in the Explorer tree under Files or inside the target folder.

Delete files or folders

  1. On a file or folder under Files, open the action menu and click Delete.

    Confirm the deletion when prompted. Deleting a folder removes the folder and its files from the project.

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.