Skip to content

Workspace Files

The Workspace Files panel shows output files generated by jobs in the current DAG run. Files are listed with size, last-modified timestamp, and a direct download link.

Workspace files panel showing log and output files with download links


Where files come from

Local workers (same machine as Master)

Worker scripts write output to titan_workspace/shared/ — a directory on the same host as the Master. Any file written there is immediately visible in the files panel.

# In a worker script (local worker)
import os

output_path = os.path.join(
    os.path.dirname(__file__), '..', 'titan_workspace', 'shared',
    'my_output.txt'
)
with open(output_path, 'w') as f:
    f.write(results)

Standard log files (DAG-<job-id>.log) are written automatically by the Master for every job that runs on a local worker.

Remote workers (SSH tunnel, RunPod, GCP, etc.)

Remote workers must explicitly upload files

Remote workers run on a different machine — they have no access to the Master's filesystem. Files written to the worker's local disk never appear in the Workspace Files panel unless the job script explicitly uploads them using the SDK.

This includes log files: DAG-<job-id>.log is not auto-generated for remote workers. Use the STDOUT/STDERR panel in the Visualizer to read live output from remote jobs.

To make a file downloadable from a remote worker, call upload_file at the end of your job script:

from titan_sdk import TitanClient

store = TitanClient()

# Write your output locally on the worker
with open("model_report.txt", "w") as f:
    f.write(report)

# Push to Master so it appears in Dashboard > Workspace Files
store.upload_file("model_report.txt")

Filtering

The panel filters files by the job names in the current DAG. It uses token expansion — job names are split on - and each token is matched independently against filenames.

For example, a job named analyst-airflow matches files containing analyst or airflow:

  • DAG-analyst-airflow.log ✓ (matches "analyst-airflow")
  • comp_intel_Airflow_vs_Prefect_vs_Dagster_ci-001.md ✓ (matches "airflow")
  • intel_ci-001_result_0.txt ✓ (matches "intel")

Tokens shorter than 3 characters are ignored to avoid false matches.


Downloading files

Each file entry has a download link. Click it to download the file directly from the server.

Files are served from /api/workspace/file/<filename>.


Expected files per job type

Job Expected outputs
Any job DAG-<job-id>.log — full stdout/stderr
Preprocessing Domain-specific report file (e.g. preprocessing_report.txt)
LLM analyst jobs Raw output text per analyst (e.g. intel_ci-001_result_0.txt)
Synthesizer jobs Final synthesized report (e.g. comp_intel_Airflow_vs_Prefect_vs_Dagster_ci-001.md)
Training jobs Model artifacts, metrics files

Using files for HITL decisions

The files panel is designed to work alongside the HITL approval flow. Download and review a job's output before approving or rejecting the gate that follows it.


File persistence

Files in titan_workspace/shared/ persist across DAG runs. They are not automatically cleaned up. If you run the same pipeline multiple times, output files are overwritten if the worker uses the same filename, or accumulate if filenames include run IDs or timestamps.