Files
headquarter/openspec/specs/project-management/spec.md
T
alex e7819bfc82 feat: implement docker infrastructure (US-001)
- Add docker-compose.yml with postgres, redis, api, and web services
- Add multi-stage Dockerfile for API (Python 3.11)
- Add multi-stage Dockerfile for web (Node.js 20 + nginx)
- Add Makefile with common development commands
- Add .env.example with all required environment variables
- Add placeholder pyproject.toml and package.json for builds
- Configure health checks for all services
- Setup persistent volumes for postgres, redis, and repos
- Run services as non-root users
2026-05-16 17:44:39 +00:00

1.6 KiB

Project Management Specification

Purpose

Organize repositories into projects for grouping related work.

Requirements

Requirement: Project Creation

The system SHALL allow creating new projects.

Scenario: Create project

  • GIVEN an authenticated user
  • WHEN they create a project with name and description
  • THEN a project record is created
  • AND the user is set as owner

Requirement: Project Listing

The system SHALL list all user projects.

Scenario: List projects

  • GIVEN an authenticated user
  • WHEN they view the projects page
  • THEN all their projects are listed with associated repositories

Requirement: Project Updates

The system SHALL support updating project details.

Scenario: Update project

  • GIVEN a project owner
  • WHEN they update the name or description
  • THEN the changes are persisted

Requirement: Project Deletion

The system SHALL support cascading project deletion.

Scenario: Delete project

  • GIVEN a project owner
  • WHEN they delete a project
  • THEN all associated repositories are deleted
  • AND all associated SSH keys are removed
  • AND the project record is deleted

Requirement: Default SSH Key

The system SHALL allow setting a default SSH key per project.

Scenario: Set default key

  • GIVEN a project with SSH keys
  • WHEN the owner selects a default key
  • THEN it's used for git operations in that project

Dependencies

  • Database models: Project, User, GitRepository, SSHKey
  • git-repo (for cascading delete)
  • ssh-keys (for default key)

Quality Gates

  • pytest must pass
  • mypy . must pass
  • ruff check . must pass
  • npm run typecheck must pass
  • npm run lint must pass