c4be7163d6
- API documentation for config profiles with git mounts endpoint details - User guide for using git repositories in config profiles - Document branch pinning, glob patterns, error handling, and best practices - Update API README to link to new config-profiles documentation
65 lines
3.4 KiB
Markdown
65 lines
3.4 KiB
Markdown
## 1. Database and Models
|
|
|
|
- [x] 1.1 Create Alembic migration to add `git_mounts` column to `config_profiles` table (JSONB, nullable, default empty list)
|
|
- [x] 1.2 Update `ConfigProfile` SQLAlchemy model to include `git_mounts` field
|
|
- [x] 1.3 Create Pydantic models for GitMount and GitMountCreate schemas with validation
|
|
- [x] 1.4 Add validation for git mount fields (source_path relative or glob, target_path absolute, no path traversal)
|
|
|
|
## 2. Backend API
|
|
|
|
- [x] 2.1 Update `POST /config-profiles` endpoint to accept `git_mounts` in request body
|
|
- [x] 2.2 Update `PUT /config-profiles/{id}` endpoint to accept `git_mounts` updates
|
|
- [x] 2.3 Update config profile response schemas to include `git_mounts` in output
|
|
- [x] 2.4 Add validation that referenced repositories exist in the same project
|
|
- [x] 2.5 Update `GET /config-profiles/{id}/preview` to include resolved git mounts
|
|
|
|
## 3. Profile Resolution
|
|
|
|
- [x] 3.1 Update `config_profile_resolver.py` to include git mounts in resolved profile output
|
|
- [x] 3.2 Ensure git mounts from included profiles are merged (with override rules)
|
|
- [x] 3.3 Add tests for profile resolution with git mounts
|
|
|
|
## 4. Instance Startup Integration
|
|
|
|
- [x] 4.1 Modify instance startup pipeline to process git mounts from resolved profile
|
|
- [x] 4.2 Add helper function to clone repository if not present (reusing existing clone service)
|
|
- [x] 4.3 Add glob pattern expansion for source_path (using standard glob library)
|
|
- [x] 4.4 Add helper function to checkout specified branch after clone
|
|
- [x] 4.5 Generate bind mount entries in compose file for each valid git mount
|
|
- [x] 4.6 Add error logging for missing repos (non-blocking, mount skipped)
|
|
- [x] 4.7 Ensure git mounts are processed in parallel with other startup steps
|
|
|
|
## 5. Frontend Types and API
|
|
|
|
- [x] 5.1 Update TypeScript types in `apps/web/src/api/config_profiles.ts` to include GitMount interface
|
|
- [x] 5.2 Update API client functions to include git_mounts in create/update payloads
|
|
- [x] 5.3 Add validation helpers for git mount form fields
|
|
|
|
## 6. Frontend UI
|
|
|
|
- [x] 6.1 Add "Git Mounts" section to config profile editor (below existing mounts)
|
|
- [x] 6.2 Create GitMountEditor component with repo selector, source/target path inputs (with glob hint), branch selector
|
|
- [x] 6.3 Add "Add Git Mount" button that opens the editor
|
|
- [x] 6.4 Display existing git mounts with edit/delete actions
|
|
- [x] 6.5 Integrate git mounts into profile save flow (include in form submission)
|
|
- [x] 6.6 Add validation feedback in UI (repo exists, paths valid, branch exists)
|
|
|
|
## 7. Testing and Verification
|
|
|
|
- [x] 7.1 Backend unit tests for git mount validation
|
|
- [x] 7.2 Backend integration tests for profile CRUD with git mounts
|
|
- [x] 7.3 Test instance startup with git mounts (verify bind mounts created)
|
|
- [x] 7.4 Test auto-clone behavior (clone triggered, mount created)
|
|
- [x] 7.5 Test clone failure handling (error logged, mount skipped, startup continues)
|
|
- [x] 7.6 Test glob pattern expansion (files matched, limit enforced)
|
|
- [x] 7.7 Test branch checkout behavior (success and fallback)
|
|
- [x] 7.8 Frontend type check passes
|
|
- [x] 7.9 Frontend production build succeeds
|
|
- [ ] 7.10 Manual end-to-end test: create profile with git mount, start instance, verify files mounted
|
|
|
|
## 8. Documentation
|
|
|
|
- [x] 8.1 Update API documentation with new git_mounts fields
|
|
- [x] 8.2 Add user guide section for using git repositories in config profiles
|
|
- [x] 8.3 Document branch pinning behavior and fallback rules
|