Skip to content

Feature/add project management with git#524

Draft
Edwardvaneechoud wants to merge 31 commits into
mainfrom
feature/add-project-management-with-git
Draft

Feature/add project management with git#524
Edwardvaneechoud wants to merge 31 commits into
mainfrom
feature/add-project-management-with-git

Conversation

@Edwardvaneechoud

Copy link
Copy Markdown
Owner

This pull request introduces the Git-enabled Flowfile Project feature, providing a robust backend and CLI foundation for versioning pipeline environments using deterministic, secret-free YAML synced to a git repository. It includes new project lifecycle commands, database migrations for project and visualization/dashboard tracking, and integrates project synchronization hooks for data artifacts. The frontend implementation is not yet included, but the PR provides detailed documentation and API contracts for future frontend work.

Major features and changes:

Git-Enabled Project Versioning (Backend & CLI)

  • Added a comprehensive design and implementation status document (PROJECT_VERSIONING_HANDOFF.md) outlining the product model, backend/CLI features, REST API contract, frontend handoff, and future work.
  • Implemented CLI commands (flowfile project {init,open,save}) in flowfile/__main__.py to initialize, open, and save project versions, enabling headless usage and testing of the git-backed workflow. [1] [2] [3]

Database Migrations for Project and Visualization Tracking

  • Added Alembic migration 022_workspace_projects.py to create the workspace_projects table, mapping a local install to a git-friendly project folder and tracking its state.
  • Added Alembic migration 023_visualization_dashboard_uuids.py to introduce stable UUID columns for visualizations and dashboards, ensuring portable identity for git-backed projections.
  • Added Alembic migration 024_project_track_data_artifacts.py to add a per-project track_data_artifacts toggle, allowing projects to opt out of versioning catalog tables and global artifacts.

Project Synchronization Hooks for Data Artifacts

  • Integrated hooks in artifacts/service.py to ensure artifact finalize and delete operations trigger project sync, updating the project's models.yaml as needed. [1] [2] [3] [4] [5]

References:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

@netlify

netlify Bot commented Jun 16, 2026

Copy link
Copy Markdown

Deploy Preview for flowfile-wasm canceled.

Name Link
🔨 Latest commit fced0d4
🔍 Latest deploy log https://app.netlify.com/projects/flowfile-wasm/deploys/6a38fd50f106290008e1c10f

Comment thread flowfile/flowfile/__main__.py Fixed
Comment thread flowfile/flowfile/__main__.py Fixed
Comment thread flowfile_core/flowfile_core/project/service.py Fixed
Comment thread flowfile_core/flowfile_core/project/service.py Fixed
Comment thread flowfile_core/flowfile_core/routes/project.py Fixed
Comment thread flowfile/flowfile/__main__.py Fixed
Comment thread flowfile_core/flowfile_core/project/service.py Fixed
Comment thread flowfile_core/flowfile_core/project/service.py Fixed

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Edwardvaneechoud and others added 5 commits June 20, 2026 16:08
…ed in path expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
base = project_root_base(owner_id)
if base is None:
validated = validate_path_under_cwd(folder_path)
return Path(validated).expanduser().resolve()
Edwardvaneechoud and others added 5 commits June 21, 2026 15:18
…Edwardvaneechoud/Flowfile into feature/add-project-management-with-git
…ed in path expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
root = (base / candidate).resolve()
else:
validated_candidate = validate_path_under_cwd(candidate)
root = Path(validated_candidate).expanduser().resolve()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants