docs: add implementation plan, ADRs, and task tracking system
- Add comprehensive 8-phase implementation plan (docs/plan.md) - Add 28 Architecture Decision Records (docs/adr/) covering all phases - Add task tracking system with 283+ task files (docs/stories/) - Add task generator script for automated task file creation - Add reference playbooks and requirements documentation This commit establishes the complete planning foundation for the Go Platform implementation, documenting all architectural decisions and providing detailed task breakdown for Phases 0-8.
This commit is contained in:
62
docs/stories/COMPLETE_TASK_LIST.md
Normal file
62
docs/stories/COMPLETE_TASK_LIST.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Complete Task List
|
||||
|
||||
This document provides a comprehensive list of all tasks across all phases. Each task has a corresponding detailed file in the phase-specific directories.
|
||||
|
||||
## Task Organization
|
||||
|
||||
Tasks are organized by phase and section. Each task file follows the naming convention: `{section}.{subtask}-{description}.md`
|
||||
|
||||
## Phase 0: Project Setup & Foundation
|
||||
|
||||
### 0.1 Repository Bootstrap
|
||||
- [0.1.1 - Initialize Go Module](./phase0/0.1.1-initialize-go-module.md)
|
||||
- [0.1.2 - Create Directory Structure](./phase0/0.1.2-create-directory-structure.md)
|
||||
- [0.1.3 - Add Gitignore](./phase0/0.1.3-add-gitignore.md)
|
||||
- [0.1.4 - Create Initial README](./phase0/0.1.4-create-initial-readme.md)
|
||||
|
||||
### 0.2 Configuration System
|
||||
- [0.2.1 - Install Configuration Dependencies](./phase0/0.2.1-install-config-dependencies.md)
|
||||
- [0.2.2 - Create Config Interface](./phase0/0.2.2-create-config-interface.md)
|
||||
- [0.2.3 - Implement Config Loader](./phase0/0.2.3-implement-config-loader.md)
|
||||
- [0.2.4 - Create Configuration Files](./phase0/0.2.4-create-configuration-files.md)
|
||||
|
||||
### 0.3 Logging Foundation
|
||||
- [0.3.1 - Install Logging Dependencies](./phase0/0.3.1-install-logging-dependencies.md)
|
||||
- See [Phase 0 README](./phase0/README.md) for remaining tasks
|
||||
|
||||
### 0.4 Basic CI/CD Pipeline
|
||||
- See [Phase 0 README](./phase0/README.md) for tasks
|
||||
|
||||
### 0.5 Dependency Injection Setup
|
||||
- See [Phase 0 README](./phase0/README.md) for tasks
|
||||
|
||||
## Phase 1-8 Tasks
|
||||
|
||||
Detailed task files for Phases 1-8 are being created. See individual phase README files:
|
||||
- [Phase 1 README](./phase1/README.md) - Core Kernel & Infrastructure
|
||||
- [Phase 2 README](./phase2/README.md) - Authentication & Authorization
|
||||
- [Phase 3 README](./phase3/README.md) - Module Framework
|
||||
- [Phase 4 README](./phase4/README.md) - Sample Feature Module (Blog)
|
||||
- [Phase 5 README](./phase5/README.md) - Infrastructure Adapters
|
||||
- [Phase 6 README](./phase6/README.md) - Observability & Production Readiness
|
||||
- [Phase 7 README](./phase7/README.md) - Testing, Documentation & CI/CD
|
||||
- [Phase 8 README](./phase8/README.md) - Advanced Features & Polish
|
||||
|
||||
## Task Status Tracking
|
||||
|
||||
To track task completion:
|
||||
1. Update the Status field in each task file
|
||||
2. Update checkboxes in the main plan.md
|
||||
3. Reference task IDs in commit messages: `[0.1.1] Initialize Go module`
|
||||
4. Link GitHub issues to tasks if using issue tracking
|
||||
|
||||
## Generating Missing Task Files
|
||||
|
||||
A script is available to generate task files from plan.md:
|
||||
```bash
|
||||
cd docs/tasks
|
||||
python3 generate_tasks.py
|
||||
```
|
||||
|
||||
Note: Manually review and refine generated task files as needed.
|
||||
|
||||
63
docs/stories/README.md
Normal file
63
docs/stories/README.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Implementation Tasks
|
||||
|
||||
This directory contains detailed task definitions for each phase of the Go Platform implementation.
|
||||
|
||||
## Task Organization
|
||||
|
||||
Tasks are organized by phase, with each major task section having its own detailed file:
|
||||
|
||||
### Phase 0: Project Setup & Foundation
|
||||
- [Phase 0 Tasks](./phase0/README.md) - All Phase 0 tasks
|
||||
|
||||
### Phase 1: Core Kernel & Infrastructure
|
||||
- [Phase 1 Tasks](./phase1/README.md) - All Phase 1 tasks
|
||||
|
||||
### Phase 2: Authentication & Authorization
|
||||
- [Phase 2 Tasks](./phase2/README.md) - All Phase 2 tasks
|
||||
|
||||
### Phase 3: Module Framework
|
||||
- [Phase 3 Tasks](./phase3/README.md) - All Phase 3 tasks
|
||||
|
||||
### Phase 4: Sample Feature Module (Blog)
|
||||
- [Phase 4 Tasks](./phase4/README.md) - All Phase 4 tasks
|
||||
|
||||
### Phase 5: Infrastructure Adapters
|
||||
- [Phase 5 Tasks](./phase5/README.md) - All Phase 5 tasks
|
||||
|
||||
### Phase 6: Observability & Production Readiness
|
||||
- [Phase 6 Tasks](./phase6/README.md) - All Phase 6 tasks
|
||||
|
||||
### Phase 7: Testing, Documentation & CI/CD
|
||||
- [Phase 7 Tasks](./phase7/README.md) - All Phase 7 tasks
|
||||
|
||||
### Phase 8: Advanced Features & Polish (Optional)
|
||||
- [Phase 8 Tasks](./phase8/README.md) - All Phase 8 tasks
|
||||
|
||||
## Task Status
|
||||
|
||||
Each task file includes:
|
||||
- **Task ID**: Unique identifier (e.g., `0.1.1`)
|
||||
- **Title**: Descriptive task name
|
||||
- **Phase**: Implementation phase
|
||||
- **Status**: Pending | In Progress | Completed | Blocked
|
||||
- **Priority**: High | Medium | Low
|
||||
- **Dependencies**: Tasks that must complete first
|
||||
- **Description**: Detailed requirements
|
||||
- **Acceptance Criteria**: How to verify completion
|
||||
- **Implementation Notes**: Technical details and references
|
||||
- **Related ADRs**: Links to relevant architecture decisions
|
||||
|
||||
## Task Tracking
|
||||
|
||||
Tasks can be tracked using:
|
||||
- GitHub Issues (linked from tasks)
|
||||
- Project boards
|
||||
- Task management tools
|
||||
- Direct commit messages referencing task IDs
|
||||
|
||||
## Task Naming Convention
|
||||
|
||||
Tasks follow the format: `{phase}.{section}.{subtask}`
|
||||
|
||||
Example: `0.1.1` = Phase 0, Section 1 (Repository Bootstrap), Subtask 1
|
||||
|
||||
54
docs/stories/TASK_TEMPLATE.md
Normal file
54
docs/stories/TASK_TEMPLATE.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Task Template
|
||||
|
||||
Use this template for creating new task files.
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: {phase}.{section}.{subtask}
|
||||
- **Title**: {Descriptive Task Name}
|
||||
- **Phase**: {Phase Number} - {Phase Name}
|
||||
- **Section**: {Section Number}.{Section Name}
|
||||
- **Status**: Pending | In Progress | Completed | Blocked
|
||||
- **Priority**: High | Medium | Low
|
||||
- **Estimated Time**: {time estimate}
|
||||
- **Dependencies**: {task IDs that must complete first}
|
||||
|
||||
## Description
|
||||
{Clear description of what needs to be done}
|
||||
|
||||
## Requirements
|
||||
- {Requirement 1}
|
||||
- {Requirement 2}
|
||||
- {Requirement 3}
|
||||
|
||||
## Implementation Steps
|
||||
1. {Step 1}
|
||||
2. {Step 2}
|
||||
3. {Step 3}
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] {Criterion 1}
|
||||
- [ ] {Criterion 2}
|
||||
- [ ] {Criterion 3}
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-XXXX: {ADR Title}](../../adr/XXXX-adr-title.md)
|
||||
|
||||
## Implementation Notes
|
||||
- {Note 1}
|
||||
- {Note 2}
|
||||
- {Note 3}
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
## Files to Create/Modify
|
||||
- `path/to/file.go` - {Description}
|
||||
- `path/to/file_test.go` - {Description}
|
||||
|
||||
## References
|
||||
- {Link to relevant documentation}
|
||||
- {Link to example code}
|
||||
|
||||
219
docs/stories/generate_tasks.py
Normal file
219
docs/stories/generate_tasks.py
Normal file
@@ -0,0 +1,219 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Generate task files from plan.md
|
||||
This script parses the plan.md file and creates detailed task files for each task.
|
||||
"""
|
||||
|
||||
import re
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
def parse_plan(plan_path):
|
||||
"""Parse plan.md and extract tasks"""
|
||||
with open(plan_path, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
tasks = []
|
||||
current_phase = None
|
||||
current_section = None
|
||||
subtask_num = 1
|
||||
|
||||
lines = content.split('\n')
|
||||
i = 0
|
||||
while i < len(lines):
|
||||
line = lines[i].rstrip()
|
||||
|
||||
# Phase header
|
||||
phase_match = re.match(r'^## Phase (\d+):', line)
|
||||
if phase_match:
|
||||
current_phase = int(phase_match.group(1))
|
||||
subtask_num = 1 # Reset subtask counter for new phase
|
||||
i += 1
|
||||
continue
|
||||
|
||||
# Section header (e.g., "#### 0.1 Repository Bootstrap")
|
||||
section_match = re.match(r'^#### (\d+\.\d+)', line)
|
||||
if section_match:
|
||||
current_section = section_match.group(1)
|
||||
subtask_num = 1 # Reset subtask counter for new section
|
||||
i += 1
|
||||
continue
|
||||
|
||||
# Task item (checkbox) - must match exactly
|
||||
task_match = re.match(r'^- \[ \] (.+)', line)
|
||||
if task_match and current_phase is not None and current_section is not None:
|
||||
task_desc = task_match.group(1).strip()
|
||||
|
||||
# Handle tasks that end with colon (might have code block or list following)
|
||||
code_block = ""
|
||||
# Skip empty lines and code blocks
|
||||
if i + 1 < len(lines):
|
||||
next_line = lines[i + 1].strip()
|
||||
if next_line.startswith('```'):
|
||||
# Extract code block
|
||||
j = i + 2
|
||||
while j < len(lines) and not lines[j].strip().startswith('```'):
|
||||
code_block += lines[j] + '\n'
|
||||
j += 1
|
||||
i = j + 1
|
||||
elif next_line.startswith('- [ ]') or next_line.startswith('```'):
|
||||
# Next task or code block, don't skip
|
||||
i += 1
|
||||
else:
|
||||
i += 1
|
||||
else:
|
||||
i += 1
|
||||
|
||||
# Only add if we have valid phase and section
|
||||
if current_phase is not None and current_section is not None:
|
||||
tasks.append({
|
||||
'phase': current_phase,
|
||||
'section': current_section,
|
||||
'subtask': subtask_num,
|
||||
'description': task_desc,
|
||||
'code': code_block.strip()
|
||||
})
|
||||
subtask_num += 1
|
||||
continue
|
||||
|
||||
i += 1
|
||||
|
||||
return tasks
|
||||
|
||||
def create_task_file(task, output_dir):
|
||||
"""Create a task markdown file"""
|
||||
phase_dir = output_dir / f"phase{task['phase']}"
|
||||
phase_dir.mkdir(exist_ok=True)
|
||||
|
||||
task_id = f"{task['section']}.{task['subtask']}"
|
||||
# Create safe filename
|
||||
safe_desc = re.sub(r'[^\w\s-]', '', task['description'])[:50].strip().replace(' ', '-').lower()
|
||||
filename = f"{task_id}-{safe_desc}.md"
|
||||
filepath = phase_dir / filename
|
||||
|
||||
# Generate content
|
||||
content = f"""# Task {task_id}: {task['description']}
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: {task_id}
|
||||
- **Title**: {task['description']}
|
||||
- **Phase**: {task['phase']} - {get_phase_name(task['phase'])}
|
||||
- **Section**: {task['section']}
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
{task['description']}
|
||||
|
||||
## Requirements
|
||||
- {task['description']}
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task {task_id} is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
"""
|
||||
|
||||
if task['code']:
|
||||
content += f"\n## Code Reference\n\n```go\n{task['code']}\n```\n"
|
||||
|
||||
with open(filepath, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
return filepath
|
||||
|
||||
def get_phase_name(phase_num):
|
||||
"""Get phase name from number"""
|
||||
phases = {
|
||||
0: "Project Setup & Foundation",
|
||||
1: "Core Kernel & Infrastructure",
|
||||
2: "Authentication & Authorization",
|
||||
3: "Module Framework",
|
||||
4: "Sample Feature Module (Blog)",
|
||||
5: "Infrastructure Adapters",
|
||||
6: "Observability & Production Readiness",
|
||||
7: "Testing, Documentation & CI/CD",
|
||||
8: "Advanced Features & Polish"
|
||||
}
|
||||
return phases.get(phase_num, "Unknown")
|
||||
|
||||
def main():
|
||||
script_dir = Path(__file__).parent
|
||||
plan_path = script_dir.parent / "plan.md"
|
||||
output_dir = script_dir
|
||||
|
||||
if not plan_path.exists():
|
||||
print(f"Error: {plan_path} not found")
|
||||
return
|
||||
|
||||
print(f"Parsing {plan_path}...")
|
||||
try:
|
||||
tasks = parse_plan(plan_path)
|
||||
print(f"Found {len(tasks)} tasks")
|
||||
|
||||
if len(tasks) == 0:
|
||||
print("Warning: No tasks found. Check the plan.md format.")
|
||||
return
|
||||
|
||||
created = 0
|
||||
skipped = 0
|
||||
for task in tasks:
|
||||
try:
|
||||
task_id = f"{task['section']}.{task['subtask']}"
|
||||
|
||||
# Determine filepath before creating
|
||||
phase_dir = output_dir / f"phase{task['phase']}"
|
||||
phase_dir.mkdir(exist_ok=True)
|
||||
|
||||
# Create safe filename
|
||||
safe_desc = re.sub(r'[^\w\s-]', '', task['description'])[:50].strip().replace(' ', '-').lower()
|
||||
filename = f"{task_id}-{safe_desc}.md"
|
||||
filepath = phase_dir / filename
|
||||
|
||||
# Check if file already exists (skip if so)
|
||||
if filepath.exists() and filepath.stat().st_size > 100:
|
||||
skipped += 1
|
||||
continue
|
||||
|
||||
# Create the file
|
||||
create_task_file(task, output_dir)
|
||||
created += 1
|
||||
if created % 10 == 0:
|
||||
print(f"Created {created} task files...")
|
||||
except Exception as e:
|
||||
print(f"Error creating task {task.get('section', '?')}.{task.get('subtask', '?')}: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
print(f"\nCreated {created} new task files")
|
||||
if skipped > 0:
|
||||
print(f"Skipped {skipped} existing task files")
|
||||
print(f"Total tasks processed: {len(tasks)}")
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# Task 0.1.1: Initialize Go Module
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.1
|
||||
- **Title**: Initialize Go Module
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1 Repository Bootstrap
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: None
|
||||
|
||||
## Description
|
||||
Initialize the Go module with the correct module path for the platform.
|
||||
|
||||
## Requirements
|
||||
- Use module path: `git.dcentral.systems/toolz/goplt`
|
||||
- Go version: 1.24.3
|
||||
- Ensure `go.mod` file is created correctly
|
||||
|
||||
## Implementation Steps
|
||||
1. Run `go mod init git.dcentral.systems/toolz/goplt` in the project root
|
||||
2. Verify `go.mod` file is created with correct module path
|
||||
3. Set Go version in `go.mod`: `go 1.24`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `go.mod` file exists in project root
|
||||
- [ ] Module path is `git.dcentral.systems/toolz/goplt`
|
||||
- [ ] Go version is set to `1.24`
|
||||
- [ ] `go mod verify` passes
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0001: Go Module Path](../../adr/0001-go-module-path.md)
|
||||
- [ADR-0002: Go Version](../../adr/0002-go-version.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Ensure the module path matches the organization's Git hosting structure
|
||||
- The module path will be used for all internal imports
|
||||
- Update any documentation that references placeholder module paths
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Verify module initialization
|
||||
go mod verify
|
||||
go mod tidy
|
||||
```
|
||||
|
||||
47
docs/stories/phase0/0.1.1-initialize-go-module.md
Normal file
47
docs/stories/phase0/0.1.1-initialize-go-module.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Task 0.1.1: Initialize Go Module
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.1
|
||||
- **Title**: Initialize Go Module
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1 Repository Bootstrap
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: None
|
||||
|
||||
## Description
|
||||
Initialize the Go module with the correct module path for the platform.
|
||||
|
||||
## Requirements
|
||||
- Use module path: `git.dcentral.systems/toolz/goplt`
|
||||
- Go version: 1.24.3
|
||||
- Ensure `go.mod` file is created correctly
|
||||
|
||||
## Implementation Steps
|
||||
1. Run `go mod init git.dcentral.systems/toolz/goplt` in the project root
|
||||
2. Verify `go.mod` file is created with correct module path
|
||||
3. Set Go version in `go.mod`: `go 1.24`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `go.mod` file exists in project root
|
||||
- [ ] Module path is `git.dcentral.systems/toolz/goplt`
|
||||
- [ ] Go version is set to `1.24`
|
||||
- [ ] `go mod verify` passes
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0001: Go Module Path](../../adr/0001-go-module-path.md)
|
||||
- [ADR-0002: Go Version](../../adr/0002-go-version.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Ensure the module path matches the organization's Git hosting structure
|
||||
- The module path will be used for all internal imports
|
||||
- Update any documentation that references placeholder module paths
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Verify module initialization
|
||||
go mod verify
|
||||
go mod tidy
|
||||
```
|
||||
|
||||
77
docs/stories/phase0/0.1.2-create-directory-structure.md
Normal file
77
docs/stories/phase0/0.1.2-create-directory-structure.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Task 0.1.2: Create directory structure:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.2
|
||||
- **Title**: Create directory structure:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create directory structure:
|
||||
|
||||
## Requirements
|
||||
- Create directory structure:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.1.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
platform/
|
||||
├── cmd/
|
||||
│ └── platform/ # Main entry point
|
||||
├── internal/ # Private implementation code
|
||||
│ ├── di/ # Dependency injection container
|
||||
│ ├── registry/ # Module registry
|
||||
│ ├── pluginloader/ # Plugin loader (optional)
|
||||
│ └── infra/ # Infrastructure adapters
|
||||
├── pkg/ # Public interfaces (exported)
|
||||
│ ├── config/ # ConfigProvider interface
|
||||
│ ├── logger/ # Logger interface
|
||||
│ ├── module/ # IModule interface
|
||||
│ ├── auth/ # Auth interfaces
|
||||
│ ├── perm/ # Permission DSL
|
||||
│ └── infra/ # Infrastructure interfaces
|
||||
├── modules/ # Feature modules
|
||||
│ └── blog/ # Sample Blog module (Phase 4)
|
||||
├── config/ # Configuration files
|
||||
│ ├── default.yaml
|
||||
│ ├── development.yaml
|
||||
│ └── production.yaml
|
||||
├── api/ # OpenAPI specs
|
||||
├── scripts/ # Build/test scripts
|
||||
├── docs/ # Documentation
|
||||
├── ops/ # Operations (Grafana dashboards, etc.)
|
||||
├── .github/
|
||||
│ └── workflows/
|
||||
│ └── ci.yml
|
||||
├── Dockerfile
|
||||
├── docker-compose.yml
|
||||
├── docker-compose.test.yml
|
||||
└── go.mod
|
||||
```
|
||||
56
docs/stories/phase0/0.1.3-add-gitignore-for-go-projects.md
Normal file
56
docs/stories/phase0/0.1.3-add-gitignore-for-go-projects.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Task 0.1.3: Add Gitignore
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.3
|
||||
- **Title**: Add Gitignore
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1 Repository Bootstrap
|
||||
- **Status**: Pending
|
||||
- **Priority**: Medium
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Create a comprehensive `.gitignore` file for Go projects that excludes build artifacts, dependencies, IDE files, and sensitive data.
|
||||
|
||||
## Requirements
|
||||
- Ignore Go build artifacts
|
||||
- Ignore dependency caches
|
||||
- Ignore IDE-specific files
|
||||
- Ignore environment-specific files
|
||||
- Ignore secrets and sensitive data
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `.gitignore` in project root
|
||||
2. Add standard Go ignores:
|
||||
- `*.exe`, `*.exe~`, `*.dll`, `*.so`, `*.dylib`
|
||||
- `*.test`, `*.out`
|
||||
- `go.work`, `go.work.sum`
|
||||
3. Add IDE ignores:
|
||||
- `.vscode/`, `.idea/`, `*.swp`, `*.swo`
|
||||
4. Add environment ignores:
|
||||
- `.env`, `.env.local`, `config/secrets/`
|
||||
5. Add OS ignores:
|
||||
- `.DS_Store`, `Thumbs.db`
|
||||
6. Add build artifacts:
|
||||
- `bin/`, `dist/`, `tmp/`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `.gitignore` file exists
|
||||
- [ ] Common Go artifacts are ignored
|
||||
- [ ] IDE files are ignored
|
||||
- [ ] Sensitive files are ignored
|
||||
- [ ] Test with `git status` to verify
|
||||
|
||||
## Implementation Notes
|
||||
- Use standard Go `.gitignore` templates
|
||||
- Ensure `config/secrets/` is ignored (for secret files)
|
||||
- Consider adding `*.log` for log files
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Verify gitignore works
|
||||
git status
|
||||
# Should not show build artifacts or IDE files
|
||||
```
|
||||
|
||||
56
docs/stories/phase0/0.1.3-add-gitignore.md
Normal file
56
docs/stories/phase0/0.1.3-add-gitignore.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Task 0.1.3: Add Gitignore
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.3
|
||||
- **Title**: Add Gitignore
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1 Repository Bootstrap
|
||||
- **Status**: Pending
|
||||
- **Priority**: Medium
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Create a comprehensive `.gitignore` file for Go projects that excludes build artifacts, dependencies, IDE files, and sensitive data.
|
||||
|
||||
## Requirements
|
||||
- Ignore Go build artifacts
|
||||
- Ignore dependency caches
|
||||
- Ignore IDE-specific files
|
||||
- Ignore environment-specific files
|
||||
- Ignore secrets and sensitive data
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `.gitignore` in project root
|
||||
2. Add standard Go ignores:
|
||||
- `*.exe`, `*.exe~`, `*.dll`, `*.so`, `*.dylib`
|
||||
- `*.test`, `*.out`
|
||||
- `go.work`, `go.work.sum`
|
||||
3. Add IDE ignores:
|
||||
- `.vscode/`, `.idea/`, `*.swp`, `*.swo`
|
||||
4. Add environment ignores:
|
||||
- `.env`, `.env.local`, `config/secrets/`
|
||||
5. Add OS ignores:
|
||||
- `.DS_Store`, `Thumbs.db`
|
||||
6. Add build artifacts:
|
||||
- `bin/`, `dist/`, `tmp/`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `.gitignore` file exists
|
||||
- [ ] Common Go artifacts are ignored
|
||||
- [ ] IDE files are ignored
|
||||
- [ ] Sensitive files are ignored
|
||||
- [ ] Test with `git status` to verify
|
||||
|
||||
## Implementation Notes
|
||||
- Use standard Go `.gitignore` templates
|
||||
- Ensure `config/secrets/` is ignored (for secret files)
|
||||
- Consider adding `*.log` for log files
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Verify gitignore works
|
||||
git status
|
||||
# Should not show build artifacts or IDE files
|
||||
```
|
||||
|
||||
63
docs/stories/phase0/0.1.4-create-initial-readme.md
Normal file
63
docs/stories/phase0/0.1.4-create-initial-readme.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Task 0.1.4: Create Initial README
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.4
|
||||
- **Title**: Create Initial README
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1 Repository Bootstrap
|
||||
- **Status**: Pending
|
||||
- **Priority**: Medium
|
||||
- **Estimated Time**: 20 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Create an initial `README.md` file that provides an overview of the project, its purpose, architecture, and quick start instructions.
|
||||
|
||||
## Requirements
|
||||
- Project overview and description
|
||||
- Architecture overview
|
||||
- Quick start guide
|
||||
- Links to documentation
|
||||
- Build and run instructions
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `README.md` in project root
|
||||
2. Add project title and description
|
||||
3. Add architecture overview section
|
||||
4. Add quick start instructions
|
||||
5. Add links to documentation (`docs/`)
|
||||
6. Add build and run commands
|
||||
7. Add contribution guidelines (placeholder)
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `README.md` exists
|
||||
- [ ] Project overview is clear
|
||||
- [ ] Quick start instructions are present
|
||||
- [ ] Links to documentation work
|
||||
- [ ] Build instructions are accurate
|
||||
|
||||
## Implementation Notes
|
||||
- Keep README concise but informative
|
||||
- Update as project evolves
|
||||
- Include badges (build status, etc.) later
|
||||
- Reference ADRs for architecture decisions
|
||||
|
||||
## Content Structure
|
||||
```markdown
|
||||
# Go Platform (goplt)
|
||||
|
||||
[Description]
|
||||
|
||||
## Architecture
|
||||
[Overview]
|
||||
|
||||
## Quick Start
|
||||
[Instructions]
|
||||
|
||||
## Documentation
|
||||
[Links]
|
||||
|
||||
## Development
|
||||
[Setup instructions]
|
||||
```
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# Task 0.1.4: Create Initial README
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.1.4
|
||||
- **Title**: Create Initial README
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.1 Repository Bootstrap
|
||||
- **Status**: Pending
|
||||
- **Priority**: Medium
|
||||
- **Estimated Time**: 20 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Create an initial `README.md` file that provides an overview of the project, its purpose, architecture, and quick start instructions.
|
||||
|
||||
## Requirements
|
||||
- Project overview and description
|
||||
- Architecture overview
|
||||
- Quick start guide
|
||||
- Links to documentation
|
||||
- Build and run instructions
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `README.md` in project root
|
||||
2. Add project title and description
|
||||
3. Add architecture overview section
|
||||
4. Add quick start instructions
|
||||
5. Add links to documentation (`docs/`)
|
||||
6. Add build and run commands
|
||||
7. Add contribution guidelines (placeholder)
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `README.md` exists
|
||||
- [ ] Project overview is clear
|
||||
- [ ] Quick start instructions are present
|
||||
- [ ] Links to documentation work
|
||||
- [ ] Build instructions are accurate
|
||||
|
||||
## Implementation Notes
|
||||
- Keep README concise but informative
|
||||
- Update as project evolves
|
||||
- Include badges (build status, etc.) later
|
||||
- Reference ADRs for architecture decisions
|
||||
|
||||
## Content Structure
|
||||
```markdown
|
||||
# Go Platform (goplt)
|
||||
|
||||
[Description]
|
||||
|
||||
## Architecture
|
||||
[Overview]
|
||||
|
||||
## Quick Start
|
||||
[Instructions]
|
||||
|
||||
## Documentation
|
||||
[Links]
|
||||
|
||||
## Development
|
||||
[Setup instructions]
|
||||
```
|
||||
|
||||
47
docs/stories/phase0/0.2.1-install-config-dependencies.md
Normal file
47
docs/stories/phase0/0.2.1-install-config-dependencies.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Task 0.2.1: Install Configuration Dependencies
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.1
|
||||
- **Title**: Install Configuration Dependencies
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Install Viper and Cobra packages for configuration management and CLI support.
|
||||
|
||||
## Requirements
|
||||
- Install `github.com/spf13/viper` v1.18.0+
|
||||
- Install `github.com/spf13/cobra` v1.8.0+
|
||||
- Add to `go.mod` with proper version constraints
|
||||
|
||||
## Implementation Steps
|
||||
1. Run `go get github.com/spf13/viper@v1.18.0`
|
||||
2. Run `go get github.com/spf13/cobra@v1.8.0`
|
||||
3. Run `go mod tidy` to update dependencies
|
||||
4. Verify packages in `go.mod`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Viper is listed in `go.mod`
|
||||
- [ ] Cobra is listed in `go.mod`
|
||||
- [ ] `go mod verify` passes
|
||||
- [ ] Dependencies are properly versioned
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Use specific versions for reproducibility
|
||||
- Consider using `go get -u` for latest patch versions
|
||||
- Document version choices in ADR
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
go mod verify
|
||||
go list -m github.com/spf13/viper
|
||||
go list -m github.com/spf13/cobra
|
||||
```
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# Task 0.2.1: Install Configuration Dependencies
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.1
|
||||
- **Title**: Install Configuration Dependencies
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Install Viper and Cobra packages for configuration management and CLI support.
|
||||
|
||||
## Requirements
|
||||
- Install `github.com/spf13/viper` v1.18.0+
|
||||
- Install `github.com/spf13/cobra` v1.8.0+
|
||||
- Add to `go.mod` with proper version constraints
|
||||
|
||||
## Implementation Steps
|
||||
1. Run `go get github.com/spf13/viper@v1.18.0`
|
||||
2. Run `go get github.com/spf13/cobra@v1.8.0`
|
||||
3. Run `go mod tidy` to update dependencies
|
||||
4. Verify packages in `go.mod`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Viper is listed in `go.mod`
|
||||
- [ ] Cobra is listed in `go.mod`
|
||||
- [ ] `go mod verify` passes
|
||||
- [ ] Dependencies are properly versioned
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Use specific versions for reproducibility
|
||||
- Consider using `go get -u` for latest patch versions
|
||||
- Document version choices in ADR
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
go mod verify
|
||||
go list -m github.com/spf13/viper
|
||||
go list -m github.com/spf13/cobra
|
||||
```
|
||||
|
||||
59
docs/stories/phase0/0.2.2-create-config-interface.md
Normal file
59
docs/stories/phase0/0.2.2-create-config-interface.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Task 0.2.2: Create Config Interface
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.2
|
||||
- **Title**: Create Config Interface
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 15 minutes
|
||||
- **Dependencies**: 0.2.1
|
||||
|
||||
## Description
|
||||
Create the `ConfigProvider` interface in `pkg/config/` to abstract configuration access. This interface will be used by all modules and services.
|
||||
|
||||
## Requirements
|
||||
- Define interface in `pkg/config/config.go`
|
||||
- Include methods for type-safe access
|
||||
- Support nested configuration keys
|
||||
- Support unmarshaling into structs
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `pkg/config/config.go`
|
||||
2. Define `ConfigProvider` interface:
|
||||
```go
|
||||
type ConfigProvider interface {
|
||||
Get(key string) any
|
||||
Unmarshal(v any) error
|
||||
GetString(key string) string
|
||||
GetInt(key string) int
|
||||
GetBool(key string) bool
|
||||
GetStringSlice(key string) []string
|
||||
}
|
||||
```
|
||||
3. Add package documentation
|
||||
4. Export interface for use by modules
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `pkg/config/config.go` exists
|
||||
- [ ] `ConfigProvider` interface is defined
|
||||
- [ ] Interface methods match requirements
|
||||
- [ ] Package documentation is present
|
||||
- [ ] Interface compiles without errors
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Interface should be minimal and focused
|
||||
- Additional methods can be added later if needed
|
||||
- Consider adding `GetDuration()` for time.Duration values
|
||||
- Consider adding `IsSet(key string) bool` to check if key exists
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
go build ./pkg/config
|
||||
go vet ./pkg/config
|
||||
```
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
# Task 0.2.2: Create Config Interface
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.2
|
||||
- **Title**: Create Config Interface
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 15 minutes
|
||||
- **Dependencies**: 0.2.1
|
||||
|
||||
## Description
|
||||
Create the `ConfigProvider` interface in `pkg/config/` to abstract configuration access. This interface will be used by all modules and services.
|
||||
|
||||
## Requirements
|
||||
- Define interface in `pkg/config/config.go`
|
||||
- Include methods for type-safe access
|
||||
- Support nested configuration keys
|
||||
- Support unmarshaling into structs
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `pkg/config/config.go`
|
||||
2. Define `ConfigProvider` interface:
|
||||
```go
|
||||
type ConfigProvider interface {
|
||||
Get(key string) any
|
||||
Unmarshal(v any) error
|
||||
GetString(key string) string
|
||||
GetInt(key string) int
|
||||
GetBool(key string) bool
|
||||
GetStringSlice(key string) []string
|
||||
}
|
||||
```
|
||||
3. Add package documentation
|
||||
4. Export interface for use by modules
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `pkg/config/config.go` exists
|
||||
- [ ] `ConfigProvider` interface is defined
|
||||
- [ ] Interface methods match requirements
|
||||
- [ ] Package documentation is present
|
||||
- [ ] Interface compiles without errors
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Interface should be minimal and focused
|
||||
- Additional methods can be added later if needed
|
||||
- Consider adding `GetDuration()` for time.Duration values
|
||||
- Consider adding `IsSet(key string) bool` to check if key exists
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
go build ./pkg/config
|
||||
go vet ./pkg/config
|
||||
```
|
||||
|
||||
60
docs/stories/phase0/0.2.3-implement-config-loader.md
Normal file
60
docs/stories/phase0/0.2.3-implement-config-loader.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Task 0.2.3: Implement Config Loader
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.3
|
||||
- **Title**: Implement Config Loader
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 30 minutes
|
||||
- **Dependencies**: 0.2.1, 0.2.2
|
||||
|
||||
## Description
|
||||
Implement the Viper-based configuration loader in `internal/config/` that implements the `ConfigProvider` interface. This loader will handle hierarchical configuration loading from files and environment variables.
|
||||
|
||||
## Requirements
|
||||
- Implement `ConfigProvider` interface using Viper
|
||||
- Load configuration in order: defaults → environment-specific → env vars
|
||||
- Support YAML configuration files
|
||||
- Support environment variable overrides
|
||||
- Provide placeholder for secret manager integration (Phase 6)
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `internal/config/config.go`:
|
||||
- Implement `ConfigProvider` interface
|
||||
- Wrap Viper instance
|
||||
- Implement all interface methods
|
||||
2. Create `internal/config/loader.go`:
|
||||
- `LoadConfig()` function
|
||||
- Load `config/default.yaml` as baseline
|
||||
- Merge environment-specific YAML (development/production)
|
||||
- Apply environment variable overrides
|
||||
- Set up automatic environment variable binding
|
||||
3. Add error handling for missing config files
|
||||
4. Add logging for configuration loading
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `internal/config/config.go` implements `ConfigProvider`
|
||||
- [ ] `internal/config/loader.go` has `LoadConfig()` function
|
||||
- [ ] Configuration loads from `config/default.yaml`
|
||||
- [ ] Environment-specific configs are merged correctly
|
||||
- [ ] Environment variables override file values
|
||||
- [ ] Errors are handled gracefully
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Use Viper's `SetConfigName()` and `AddConfigPath()`
|
||||
- Use `MergeInConfig()` for environment-specific files
|
||||
- Use `AutomaticEnv()` for environment variable binding
|
||||
- Set environment variable prefix (e.g., `GOPLT_`)
|
||||
- Use `SetEnvKeyReplacer()` to replace dots with underscores
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Test config loading
|
||||
go test ./internal/config -v
|
||||
```
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
# Task 0.2.3: Implement Config Loader
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.3
|
||||
- **Title**: Implement Config Loader
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 30 minutes
|
||||
- **Dependencies**: 0.2.1, 0.2.2
|
||||
|
||||
## Description
|
||||
Implement the Viper-based configuration loader in `internal/config/` that implements the `ConfigProvider` interface. This loader will handle hierarchical configuration loading from files and environment variables.
|
||||
|
||||
## Requirements
|
||||
- Implement `ConfigProvider` interface using Viper
|
||||
- Load configuration in order: defaults → environment-specific → env vars
|
||||
- Support YAML configuration files
|
||||
- Support environment variable overrides
|
||||
- Provide placeholder for secret manager integration (Phase 6)
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `internal/config/config.go`:
|
||||
- Implement `ConfigProvider` interface
|
||||
- Wrap Viper instance
|
||||
- Implement all interface methods
|
||||
2. Create `internal/config/loader.go`:
|
||||
- `LoadConfig()` function
|
||||
- Load `config/default.yaml` as baseline
|
||||
- Merge environment-specific YAML (development/production)
|
||||
- Apply environment variable overrides
|
||||
- Set up automatic environment variable binding
|
||||
3. Add error handling for missing config files
|
||||
4. Add logging for configuration loading
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `internal/config/config.go` implements `ConfigProvider`
|
||||
- [ ] `internal/config/loader.go` has `LoadConfig()` function
|
||||
- [ ] Configuration loads from `config/default.yaml`
|
||||
- [ ] Environment-specific configs are merged correctly
|
||||
- [ ] Environment variables override file values
|
||||
- [ ] Errors are handled gracefully
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Use Viper's `SetConfigName()` and `AddConfigPath()`
|
||||
- Use `MergeInConfig()` for environment-specific files
|
||||
- Use `AutomaticEnv()` for environment variable binding
|
||||
- Set environment variable prefix (e.g., `GOPLT_`)
|
||||
- Use `SetEnvKeyReplacer()` to replace dots with underscores
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Test config loading
|
||||
go test ./internal/config -v
|
||||
```
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
# Task 0.2.4: Create Configuration Files
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.4
|
||||
- **Title**: Create Configuration Files
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 15 minutes
|
||||
- **Dependencies**: 0.1.2
|
||||
|
||||
## Description
|
||||
Create the baseline configuration YAML files that define the default configuration structure for the platform.
|
||||
|
||||
## Requirements
|
||||
- Create `config/default.yaml` with baseline values
|
||||
- Create `config/development.yaml` with development overrides
|
||||
- Create `config/production.yaml` with production overrides
|
||||
- Define configuration schema for all core services
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `config/default.yaml`:
|
||||
```yaml
|
||||
environment: development
|
||||
server:
|
||||
port: 8080
|
||||
host: "0.0.0.0"
|
||||
database:
|
||||
driver: "postgres"
|
||||
dsn: ""
|
||||
logging:
|
||||
level: "info"
|
||||
format: "json"
|
||||
```
|
||||
2. Create `config/development.yaml`:
|
||||
- Override logging level to "debug"
|
||||
- Add development-specific settings
|
||||
3. Create `config/production.yaml`:
|
||||
- Override logging level to "warn"
|
||||
- Add production-specific settings
|
||||
4. Document configuration options
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `config/default.yaml` exists with complete structure
|
||||
- [ ] `config/development.yaml` exists
|
||||
- [ ] `config/production.yaml` exists
|
||||
- [ ] All configuration files are valid YAML
|
||||
- [ ] Configuration structure is documented
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Use consistent indentation (2 spaces)
|
||||
- Add comments for unclear configuration options
|
||||
- Use environment variables for sensitive values (DSN, secrets)
|
||||
- Consider adding validation schema later
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Validate YAML syntax
|
||||
yamllint config/*.yaml
|
||||
# or
|
||||
python3 -c "import yaml; yaml.safe_load(open('config/default.yaml'))"
|
||||
```
|
||||
|
||||
67
docs/stories/phase0/0.2.4-create-configuration-files.md
Normal file
67
docs/stories/phase0/0.2.4-create-configuration-files.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Task 0.2.4: Create Configuration Files
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.4
|
||||
- **Title**: Create Configuration Files
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2 Configuration System
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 15 minutes
|
||||
- **Dependencies**: 0.1.2
|
||||
|
||||
## Description
|
||||
Create the baseline configuration YAML files that define the default configuration structure for the platform.
|
||||
|
||||
## Requirements
|
||||
- Create `config/default.yaml` with baseline values
|
||||
- Create `config/development.yaml` with development overrides
|
||||
- Create `config/production.yaml` with production overrides
|
||||
- Define configuration schema for all core services
|
||||
|
||||
## Implementation Steps
|
||||
1. Create `config/default.yaml`:
|
||||
```yaml
|
||||
environment: development
|
||||
server:
|
||||
port: 8080
|
||||
host: "0.0.0.0"
|
||||
database:
|
||||
driver: "postgres"
|
||||
dsn: ""
|
||||
logging:
|
||||
level: "info"
|
||||
format: "json"
|
||||
```
|
||||
2. Create `config/development.yaml`:
|
||||
- Override logging level to "debug"
|
||||
- Add development-specific settings
|
||||
3. Create `config/production.yaml`:
|
||||
- Override logging level to "warn"
|
||||
- Add production-specific settings
|
||||
4. Document configuration options
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] `config/default.yaml` exists with complete structure
|
||||
- [ ] `config/development.yaml` exists
|
||||
- [ ] `config/production.yaml` exists
|
||||
- [ ] All configuration files are valid YAML
|
||||
- [ ] Configuration structure is documented
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0004: Configuration Management](../../adr/0004-configuration-management.md)
|
||||
|
||||
## Implementation Notes
|
||||
- Use consistent indentation (2 spaces)
|
||||
- Add comments for unclear configuration options
|
||||
- Use environment variables for sensitive values (DSN, secrets)
|
||||
- Consider adding validation schema later
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# Validate YAML syntax
|
||||
yamllint config/*.yaml
|
||||
# or
|
||||
python3 -c "import yaml; yaml.safe_load(open('config/default.yaml'))"
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 0.2.5: Add `internal/config/loader.go` with `LoadConfig()` function
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.2.5
|
||||
- **Title**: Add `internal/config/loader.go` with `LoadConfig()` function
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add `internal/config/loader.go` with `LoadConfig()` function
|
||||
|
||||
## Requirements
|
||||
- Add `internal/config/loader.go` with `LoadConfig()` function
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.2.5 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
33
docs/stories/phase0/0.3.1-install-gouberorgzap.md
Normal file
33
docs/stories/phase0/0.3.1-install-gouberorgzap.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Task 0.3.1: Install Logging Dependencies
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.3.1
|
||||
- **Title**: Install Logging Dependencies
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.3 Logging Foundation
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Install the Zap logging library for structured logging.
|
||||
|
||||
## Requirements
|
||||
- Install `go.uber.org/zap` v1.26.0+
|
||||
- Add to `go.mod` with proper version constraints
|
||||
|
||||
## Implementation Steps
|
||||
1. Run `go get go.uber.org/zap@v1.26.0`
|
||||
2. Run `go mod tidy`
|
||||
3. Verify package in `go.mod`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Zap is listed in `go.mod`
|
||||
- [ ] Version is v1.26.0 or later
|
||||
- [ ] `go mod verify` passes
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0005: Logging Framework](../../adr/0005-logging-framework.md)
|
||||
- [ADR-0012: Logger Interface Design](../../adr/0012-logger-interface-design.md)
|
||||
|
||||
33
docs/stories/phase0/0.3.1-install-logging-dependencies.md
Normal file
33
docs/stories/phase0/0.3.1-install-logging-dependencies.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Task 0.3.1: Install Logging Dependencies
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.3.1
|
||||
- **Title**: Install Logging Dependencies
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.3 Logging Foundation
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: 5 minutes
|
||||
- **Dependencies**: 0.1.1
|
||||
|
||||
## Description
|
||||
Install the Zap logging library for structured logging.
|
||||
|
||||
## Requirements
|
||||
- Install `go.uber.org/zap` v1.26.0+
|
||||
- Add to `go.mod` with proper version constraints
|
||||
|
||||
## Implementation Steps
|
||||
1. Run `go get go.uber.org/zap@v1.26.0`
|
||||
2. Run `go mod tidy`
|
||||
3. Verify package in `go.mod`
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Zap is listed in `go.mod`
|
||||
- [ ] Version is v1.26.0 or later
|
||||
- [ ] `go mod verify` passes
|
||||
|
||||
## Related ADRs
|
||||
- [ADR-0005: Logging Framework](../../adr/0005-logging-framework.md)
|
||||
- [ADR-0012: Logger Interface Design](../../adr/0012-logger-interface-design.md)
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
# Task 0.3.2: Create `pkg/logger/logger.go` interface:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.3.2
|
||||
- **Title**: Create `pkg/logger/logger.go` interface:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/logger/logger.go` interface:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/logger/logger.go` interface:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.3.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type Logger interface {
|
||||
Debug(msg string, fields ...Field)
|
||||
Info(msg string, fields ...Field)
|
||||
Warn(msg string, fields ...Field)
|
||||
Error(msg string, fields ...Field)
|
||||
With(fields ...Field) Logger
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 0.3.3: Implement `internal/logger/zap_logger.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.3.3
|
||||
- **Title**: Implement `internal/logger/zap_logger.go`:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/logger/zap_logger.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/logger/zap_logger.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.3.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 0.3.4: Add request ID middleware helper (Gin middleware)
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.3.4
|
||||
- **Title**: Add request ID middleware helper (Gin middleware)
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add request ID middleware helper (Gin middleware)
|
||||
|
||||
## Requirements
|
||||
- Add request ID middleware helper (Gin middleware)
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.3.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase0/0.4.1-create-githubworkflowsciyml.md
Normal file
40
docs/stories/phase0/0.4.1-create-githubworkflowsciyml.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 0.4.1: Create `.github/workflows/ci.yml`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.4.1
|
||||
- **Title**: Create `.github/workflows/ci.yml`:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `.github/workflows/ci.yml`:
|
||||
|
||||
## Requirements
|
||||
- Create `.github/workflows/ci.yml`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.4.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 0.4.2: Add `Makefile` with common commands:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.4.2
|
||||
- **Title**: Add `Makefile` with common commands:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add `Makefile` with common commands:
|
||||
|
||||
## Requirements
|
||||
- Add `Makefile` with common commands:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.4.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase0/0.5.1-install-gouberorgfx.md
Normal file
40
docs/stories/phase0/0.5.1-install-gouberorgfx.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 0.5.1: Install `go.uber.org/fx`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.5.1
|
||||
- **Title**: Install `go.uber.org/fx`
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install `go.uber.org/fx`
|
||||
|
||||
## Requirements
|
||||
- Install `go.uber.org/fx`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.5.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase0/0.5.2-create-internaldicontainergo.md
Normal file
40
docs/stories/phase0/0.5.2-create-internaldicontainergo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 0.5.2: Create `internal/di/container.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.5.2
|
||||
- **Title**: Create `internal/di/container.go`:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/di/container.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/di/container.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.5.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 0.5.3: Create `cmd/platform/main.go` skeleton:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 0.5.3
|
||||
- **Title**: Create `cmd/platform/main.go` skeleton:
|
||||
- **Phase**: 0 - Project Setup & Foundation
|
||||
- **Section**: 0.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `cmd/platform/main.go` skeleton:
|
||||
|
||||
## Requirements
|
||||
- Create `cmd/platform/main.go` skeleton:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 0.5.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
47
docs/stories/phase0/README.md
Normal file
47
docs/stories/phase0/README.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Phase 0: Project Setup & Foundation
|
||||
|
||||
## Overview
|
||||
Initialize repository structure, set up Go modules and basic tooling, create configuration management foundation, and establish CI/CD skeleton.
|
||||
|
||||
## Tasks
|
||||
|
||||
### 0.1 Repository Bootstrap
|
||||
- [0.1.1 - Initialize Go Module](./0.1.1-initialize-go-module.md)
|
||||
- [0.1.2 - Create Directory Structure](./0.1.2-create-directory-structure.md)
|
||||
- [0.1.3 - Add Gitignore](./0.1.3-add-gitignore.md)
|
||||
- [0.1.4 - Create Initial README](./0.1.4-create-initial-readme.md)
|
||||
|
||||
### 0.2 Configuration System
|
||||
- [0.2.1 - Install Configuration Dependencies](./0.2.1-install-config-dependencies.md)
|
||||
- [0.2.2 - Create Config Interface](./0.2.2-create-config-interface.md)
|
||||
- [0.2.3 - Implement Config Loader](./0.2.3-implement-config-loader.md)
|
||||
- [0.2.4 - Create Configuration Files](./0.2.4-create-configuration-files.md)
|
||||
|
||||
### 0.3 Logging Foundation
|
||||
- [0.3.1 - Install Logging Dependencies](./0.3.1-install-logging-dependencies.md)
|
||||
- [0.3.2 - Create Logger Interface](./0.3.2-create-logger-interface.md) - Create `pkg/logger/logger.go` interface
|
||||
- [0.3.3 - Implement Zap Logger](./0.3.3-implement-zap-logger.md) - Implement `internal/logger/zap_logger.go`
|
||||
- [0.3.4 - Add Request ID Middleware](./0.3.4-add-request-id-middleware.md) - Create Gin middleware for request IDs
|
||||
|
||||
### 0.4 Basic CI/CD Pipeline
|
||||
- [0.4.1 - Create GitHub Actions Workflow](./0.4.1-create-github-actions-workflow.md)
|
||||
- [0.4.2 - Create Makefile](./0.4.2-create-makefile.md)
|
||||
|
||||
### 0.5 Dependency Injection Setup
|
||||
- [0.5.1 - Install FX Dependency](./0.5.1-install-fx-dependency.md)
|
||||
- [0.5.2 - Create DI Container](./0.5.2-create-di-container.md)
|
||||
- [0.5.3 - Create Main Entry Point](./0.5.3-create-main-entry-point.md)
|
||||
|
||||
## Deliverables Checklist
|
||||
- [ ] Repository structure in place
|
||||
- [ ] Configuration system loads YAML files and env vars
|
||||
- [ ] Structured logging works
|
||||
- [ ] CI pipeline runs linting and builds binary
|
||||
- [ ] Basic DI container initialized
|
||||
|
||||
## Acceptance Criteria
|
||||
- `go build ./cmd/platform` succeeds
|
||||
- `go test ./...` runs (even if tests are empty)
|
||||
- CI pipeline passes on empty commit
|
||||
- Config loads from `config/default.yaml`
|
||||
|
||||
40
docs/stories/phase1/1.1.1-extend-internaldicontainergo.md
Normal file
40
docs/stories/phase1/1.1.1-extend-internaldicontainergo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.1.1: Extend `internal/di/container.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.1.1
|
||||
- **Title**: Extend `internal/di/container.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Extend `internal/di/container.go`:
|
||||
|
||||
## Requirements
|
||||
- Extend `internal/di/container.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.1.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.1.2-create-internaldiprovidersgo.md
Normal file
40
docs/stories/phase1/1.1.2-create-internaldiprovidersgo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.1.2: Create `internal/di/providers.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.1.2
|
||||
- **Title**: Create `internal/di/providers.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/di/providers.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/di/providers.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.1.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.1.3-add-internaldicore_modulego.md
Normal file
40
docs/stories/phase1/1.1.3-add-internaldicore_modulego.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.1.3: Add `internal/di/core_module.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.1.3
|
||||
- **Title**: Add `internal/di/core_module.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add `internal/di/core_module.go`:
|
||||
|
||||
## Requirements
|
||||
- Add `internal/di/core_module.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.1.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.2.1-install-entgoioentcmdent.md
Normal file
40
docs/stories/phase1/1.2.1-install-entgoioentcmdent.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.2.1: Install `entgo.io/ent/cmd/ent`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.2.1
|
||||
- **Title**: Install `entgo.io/ent/cmd/ent`
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install `entgo.io/ent/cmd/ent`
|
||||
|
||||
## Requirements
|
||||
- Install `entgo.io/ent/cmd/ent`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.2.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
46
docs/stories/phase1/1.2.2-initialize-ent-schema.md
Normal file
46
docs/stories/phase1/1.2.2-initialize-ent-schema.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Task 1.2.2: Initialize Ent schema:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.2.2
|
||||
- **Title**: Initialize Ent schema:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Initialize Ent schema:
|
||||
|
||||
## Requirements
|
||||
- Initialize Ent schema:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.2.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
go run entgo.io/ent/cmd/ent init User Role Permission AuditLog
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.2.3: Define core entities in `internal/ent/schema/`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.2.3
|
||||
- **Title**: Define core entities in `internal/ent/schema/`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Define core entities in `internal/ent/schema/`:
|
||||
|
||||
## Requirements
|
||||
- Define core entities in `internal/ent/schema/`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.2.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.2.4: Generate Ent code: `go generate ./internal/ent`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.2.4
|
||||
- **Title**: Generate Ent code: `go generate ./internal/ent`
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Generate Ent code: `go generate ./internal/ent`
|
||||
|
||||
## Requirements
|
||||
- Generate Ent code: `go generate ./internal/ent`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.2.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.2.5: Create `internal/infra/database/client.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.2.5
|
||||
- **Title**: Create `internal/infra/database/client.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/infra/database/client.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/infra/database/client.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.2.5 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.2.6: Add database config to `config/default.yaml`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.2.6
|
||||
- **Title**: Add database config to `config/default.yaml`
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add database config to `config/default.yaml`
|
||||
|
||||
## Requirements
|
||||
- Add database config to `config/default.yaml`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.2.6 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.3.1: Install `github.com/prometheus/client_golang/prometheus`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.1
|
||||
- **Title**: Install `github.com/prometheus/client_golang/prometheus`
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install `github.com/prometheus/client_golang/prometheus`
|
||||
|
||||
## Requirements
|
||||
- Install `github.com/prometheus/client_golang/prometheus`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.3.2: Install `github.com/heptiolabs/healthcheck` (optional, or custom)
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.2
|
||||
- **Title**: Install `github.com/heptiolabs/healthcheck` (optional, or custom)
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install `github.com/heptiolabs/healthcheck` (optional, or custom)
|
||||
|
||||
## Requirements
|
||||
- Install `github.com/heptiolabs/healthcheck` (optional, or custom)
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Task 1.3.3: Create `pkg/health/health.go` interface:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.3
|
||||
- **Title**: Create `pkg/health/health.go` interface:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/health/health.go` interface:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/health/health.go` interface:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type HealthChecker interface {
|
||||
Check(ctx context.Context) error
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.3.4: Implement `internal/health/registry.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.4
|
||||
- **Title**: Implement `internal/health/registry.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/health/registry.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/health/registry.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.3.5-create-internalmetricsmetricsgo.md
Normal file
40
docs/stories/phase1/1.3.5-create-internalmetricsmetricsgo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.3.5: Create `internal/metrics/metrics.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.5
|
||||
- **Title**: Create `internal/metrics/metrics.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/metrics/metrics.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/metrics/metrics.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.5 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.3.6: Add `/metrics` endpoint (Prometheus format)
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.6
|
||||
- **Title**: Add `/metrics` endpoint (Prometheus format)
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add `/metrics` endpoint (Prometheus format)
|
||||
|
||||
## Requirements
|
||||
- Add `/metrics` endpoint (Prometheus format)
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.6 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.3.7: Register endpoints in main HTTP router
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.3.7
|
||||
- **Title**: Register endpoints in main HTTP router
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Register endpoints in main HTTP router
|
||||
|
||||
## Requirements
|
||||
- Register endpoints in main HTTP router
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.3.7 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Task 1.4.1: Create `pkg/errorbus/errorbus.go` interface:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.4.1
|
||||
- **Title**: Create `pkg/errorbus/errorbus.go` interface:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/errorbus/errorbus.go` interface:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/errorbus/errorbus.go` interface:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.4.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type ErrorPublisher interface {
|
||||
Publish(err error)
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.4.2: Implement `internal/errorbus/channel_bus.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.4.2
|
||||
- **Title**: Implement `internal/errorbus/channel_bus.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/errorbus/channel_bus.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/errorbus/channel_bus.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.4.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.4.3: Add panic recovery middleware that publishes to error bus
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.4.3
|
||||
- **Title**: Add panic recovery middleware that publishes to error bus
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add panic recovery middleware that publishes to error bus
|
||||
|
||||
## Requirements
|
||||
- Add panic recovery middleware that publishes to error bus
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.4.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.4.4: Register error bus in DI container
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.4.4
|
||||
- **Title**: Register error bus in DI container
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Register error bus in DI container
|
||||
|
||||
## Requirements
|
||||
- Register error bus in DI container
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.4.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.5.1-install-githubcomgin-gonicgin.md
Normal file
40
docs/stories/phase1/1.5.1-install-githubcomgin-gonicgin.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.5.1: Install `github.com/gin-gonic/gin`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.5.1
|
||||
- **Title**: Install `github.com/gin-gonic/gin`
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install `github.com/gin-gonic/gin`
|
||||
|
||||
## Requirements
|
||||
- Install `github.com/gin-gonic/gin`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.5.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.5.2-create-internalserverservergo.md
Normal file
40
docs/stories/phase1/1.5.2-create-internalserverservergo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.5.2: Create `internal/server/server.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.5.2
|
||||
- **Title**: Create `internal/server/server.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/server/server.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/server/server.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.5.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.5.3: Wire HTTP server into fx lifecycle:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.5.3
|
||||
- **Title**: Wire HTTP server into fx lifecycle:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Wire HTTP server into fx lifecycle:
|
||||
|
||||
## Requirements
|
||||
- Wire HTTP server into fx lifecycle:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.5.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.5.4: Update `cmd/platform/main.go` to use fx lifecycle
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.5.4
|
||||
- **Title**: Update `cmd/platform/main.go` to use fx lifecycle
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Update `cmd/platform/main.go` to use fx lifecycle
|
||||
|
||||
## Requirements
|
||||
- Update `cmd/platform/main.go` to use fx lifecycle
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.5.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase1/1.6.1-install-opentelemetry-packages.md
Normal file
40
docs/stories/phase1/1.6.1-install-opentelemetry-packages.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 1.6.1: Install OpenTelemetry packages:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.6.1
|
||||
- **Title**: Install OpenTelemetry packages:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install OpenTelemetry packages:
|
||||
|
||||
## Requirements
|
||||
- Install OpenTelemetry packages:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.6.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.6.2: Create `internal/observability/tracer.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.6.2
|
||||
- **Title**: Create `internal/observability/tracer.go`:
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/observability/tracer.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/observability/tracer.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.6.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.6.3: Add HTTP instrumentation middleware
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.6.3
|
||||
- **Title**: Add HTTP instrumentation middleware
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add HTTP instrumentation middleware
|
||||
|
||||
## Requirements
|
||||
- Add HTTP instrumentation middleware
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.6.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 1.6.4: Add trace context propagation to requests
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 1.6.4
|
||||
- **Title**: Add trace context propagation to requests
|
||||
- **Phase**: 1 - Core Kernel & Infrastructure
|
||||
- **Section**: 1.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add trace context propagation to requests
|
||||
|
||||
## Requirements
|
||||
- Add trace context propagation to requests
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 1.6.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.1.1: Install `github.com/golang-jwt/jwt/v5`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.1.1
|
||||
- **Title**: Install `github.com/golang-jwt/jwt/v5`
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Install `github.com/golang-jwt/jwt/v5`
|
||||
|
||||
## Requirements
|
||||
- Install `github.com/golang-jwt/jwt/v5`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.1.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
56
docs/stories/phase2/2.1.2-create-pkgauthauthgo-interfaces.md
Normal file
56
docs/stories/phase2/2.1.2-create-pkgauthauthgo-interfaces.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Task 2.1.2: Create `pkg/auth/auth.go` interfaces:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.1.2
|
||||
- **Title**: Create `pkg/auth/auth.go` interfaces:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/auth/auth.go` interfaces:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/auth/auth.go` interfaces:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.1.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type Authenticator interface {
|
||||
GenerateToken(userID string, roles []string, tenantID string) (string, error)
|
||||
VerifyToken(token string) (*TokenClaims, error)
|
||||
}
|
||||
|
||||
type TokenClaims struct {
|
||||
UserID string
|
||||
Roles []string
|
||||
TenantID string
|
||||
ExpiresAt time.Time
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.1.3: Implement `internal/auth/jwt_auth.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.1.3
|
||||
- **Title**: Implement `internal/auth/jwt_auth.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/auth/jwt_auth.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/auth/jwt_auth.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.1.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.1.4-create-internalauthmiddlewarego.md
Normal file
40
docs/stories/phase2/2.1.4-create-internalauthmiddlewarego.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.1.4: Create `internal/auth/middleware.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.1.4
|
||||
- **Title**: Create `internal/auth/middleware.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/auth/middleware.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/auth/middleware.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.1.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.1.5: Add login endpoint: `POST /api/v1/auth/login`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.1.5
|
||||
- **Title**: Add login endpoint: `POST /api/v1/auth/login`
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add login endpoint: `POST /api/v1/auth/login`
|
||||
|
||||
## Requirements
|
||||
- Add login endpoint: `POST /api/v1/auth/login`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.1.5 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.1.6: Add refresh endpoint: `POST /api/v1/auth/refresh`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.1.6
|
||||
- **Title**: Add refresh endpoint: `POST /api/v1/auth/refresh`
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add refresh endpoint: `POST /api/v1/auth/refresh`
|
||||
|
||||
## Requirements
|
||||
- Add refresh endpoint: `POST /api/v1/auth/refresh`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.1.6 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
# Task 2.2.1: Create `pkg/identity/identity.go` interfaces:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.2.1
|
||||
- **Title**: Create `pkg/identity/identity.go` interfaces:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/identity/identity.go` interfaces:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/identity/identity.go` interfaces:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.2.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type UserRepository interface {
|
||||
FindByID(ctx context.Context, id string) (*User, error)
|
||||
FindByEmail(ctx context.Context, email string) (*User, error)
|
||||
Create(ctx context.Context, u *User) error
|
||||
Update(ctx context.Context, u *User) error
|
||||
Delete(ctx context.Context, id string) error
|
||||
}
|
||||
|
||||
type UserService interface {
|
||||
Register(ctx context.Context, email, password string) (*User, error)
|
||||
VerifyEmail(ctx context.Context, token string) error
|
||||
ResetPassword(ctx context.Context, email string) error
|
||||
ChangePassword(ctx context.Context, userID, oldPassword, newPassword string) error
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.2.2: Implement `internal/identity/user_repo.go` using Ent:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.2.2
|
||||
- **Title**: Implement `internal/identity/user_repo.go` using Ent:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/identity/user_repo.go` using Ent:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/identity/user_repo.go` using Ent:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.2.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.2.3: Implement `internal/identity/user_service.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.2.3
|
||||
- **Title**: Implement `internal/identity/user_service.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/identity/user_service.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/identity/user_service.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.2.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.2.4-add-endpoints.md
Normal file
40
docs/stories/phase2/2.2.4-add-endpoints.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.2.4: Add endpoints:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.2.4
|
||||
- **Title**: Add endpoints:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add endpoints:
|
||||
|
||||
## Requirements
|
||||
- Add endpoints:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.2.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
59
docs/stories/phase2/2.3.1-create-pkgpermpermgo.md
Normal file
59
docs/stories/phase2/2.3.1-create-pkgpermpermgo.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Task 2.3.1: Create `pkg/perm/perm.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.3.1
|
||||
- **Title**: Create `pkg/perm/perm.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/perm/perm.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/perm/perm.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.3.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type Permission string
|
||||
|
||||
// Core permissions
|
||||
var (
|
||||
SystemHealthCheck Permission = "system.health.check"
|
||||
UserCreate Permission = "user.create"
|
||||
UserRead Permission = "user.read"
|
||||
UserUpdate Permission = "user.update"
|
||||
UserDelete Permission = "user.delete"
|
||||
RoleCreate Permission = "role.create"
|
||||
RoleRead Permission = "role.read"
|
||||
RoleUpdate Permission = "role.update"
|
||||
RoleDelete Permission = "role.delete"
|
||||
)
|
||||
```
|
||||
@@ -0,0 +1,49 @@
|
||||
# Task 2.3.2: Create `pkg/perm/resolver.go` interface:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.3.2
|
||||
- **Title**: Create `pkg/perm/resolver.go` interface:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/perm/resolver.go` interface:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/perm/resolver.go` interface:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.3.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type PermissionResolver interface {
|
||||
HasPermission(ctx context.Context, userID string, perm Permission) (bool, error)
|
||||
GetUserPermissions(ctx context.Context, userID string) ([]Permission, error)
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.3.3: Implement `internal/perm/in_memory_resolver.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.3.3
|
||||
- **Title**: Implement `internal/perm/in_memory_resolver.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/perm/in_memory_resolver.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/perm/in_memory_resolver.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.3.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
48
docs/stories/phase2/2.3.4-create-pkgauthauthzgo-interface.md
Normal file
48
docs/stories/phase2/2.3.4-create-pkgauthauthzgo-interface.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Task 2.3.4: Create `pkg/auth/authz.go` interface:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.3.4
|
||||
- **Title**: Create `pkg/auth/authz.go` interface:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/auth/authz.go` interface:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/auth/authz.go` interface:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.3.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type Authorizer interface {
|
||||
Authorize(ctx context.Context, perm Permission) error
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.3.5: Implement `internal/auth/rbac_authorizer.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.3.5
|
||||
- **Title**: Implement `internal/auth/rbac_authorizer.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/auth/rbac_authorizer.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/auth/rbac_authorizer.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.3.5 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.3.6-create-authorization-middleware.md
Normal file
40
docs/stories/phase2/2.3.6-create-authorization-middleware.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.3.6: Create authorization middleware:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.3.6
|
||||
- **Title**: Create authorization middleware:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create authorization middleware:
|
||||
|
||||
## Requirements
|
||||
- Create authorization middleware:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.3.6 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.4.1: Create `internal/identity/role_repo.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.4.1
|
||||
- **Title**: Create `internal/identity/role_repo.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/identity/role_repo.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/identity/role_repo.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.4.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.4.2-add-endpoints.md
Normal file
40
docs/stories/phase2/2.4.2-add-endpoints.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.4.2: Add endpoints:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.4.2
|
||||
- **Title**: Add endpoints:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add endpoints:
|
||||
|
||||
## Requirements
|
||||
- Add endpoints:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.4.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# Task 2.5.1: Create `pkg/audit/audit.go` interface:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.5.1
|
||||
- **Title**: Create `pkg/audit/audit.go` interface:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/audit/audit.go` interface:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/audit/audit.go` interface:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.5.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type Auditor interface {
|
||||
Record(ctx context.Context, act AuditAction) error
|
||||
}
|
||||
|
||||
type AuditAction struct {
|
||||
ActorID string
|
||||
Action string
|
||||
TargetID string
|
||||
Metadata map[string]any
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 2.5.2: Implement `internal/audit/ent_auditor.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.5.2
|
||||
- **Title**: Implement `internal/audit/ent_auditor.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/audit/ent_auditor.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/audit/ent_auditor.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.5.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.5.3-add-audit-middleware.md
Normal file
40
docs/stories/phase2/2.5.3-add-audit-middleware.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.5.3: Add audit middleware:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.5.3
|
||||
- **Title**: Add audit middleware:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add audit middleware:
|
||||
|
||||
## Requirements
|
||||
- Add audit middleware:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.5.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.5.4-integrate-with-auth-endpoints.md
Normal file
40
docs/stories/phase2/2.5.4-integrate-with-auth-endpoints.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.5.4: Integrate with auth endpoints:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.5.4
|
||||
- **Title**: Integrate with auth endpoints:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Integrate with auth endpoints:
|
||||
|
||||
## Requirements
|
||||
- Integrate with auth endpoints:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.5.4 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase2/2.6.1-create-internalseedseedgo.md
Normal file
40
docs/stories/phase2/2.6.1-create-internalseedseedgo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 2.6.1: Create `internal/seed/seed.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 2.6.1
|
||||
- **Title**: Create `internal/seed/seed.go`:
|
||||
- **Phase**: 2 - Authentication & Authorization
|
||||
- **Section**: 2.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/seed/seed.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/seed/seed.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 2.6.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
52
docs/stories/phase3/3.1.1-create-pkgmodulemodulego.md
Normal file
52
docs/stories/phase3/3.1.1-create-pkgmodulemodulego.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Task 3.1.1: Create `pkg/module/module.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.1.1
|
||||
- **Title**: Create `pkg/module/module.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/module/module.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/module/module.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.1.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type IModule interface {
|
||||
Name() string
|
||||
Version() string
|
||||
Dependencies() []string
|
||||
Init() fx.Option
|
||||
Migrations() []func(*ent.Client) error
|
||||
}
|
||||
```
|
||||
52
docs/stories/phase3/3.1.2-create-pkgmodulemanifestgo.md
Normal file
52
docs/stories/phase3/3.1.2-create-pkgmodulemanifestgo.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Task 3.1.2: Create `pkg/module/manifest.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.1.2
|
||||
- **Title**: Create `pkg/module/manifest.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `pkg/module/manifest.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `pkg/module/manifest.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.1.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type Manifest struct {
|
||||
Name string
|
||||
Version string
|
||||
Dependencies []string
|
||||
Permissions []string
|
||||
Routes []Route
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.1.3: Define `module.yaml` schema (used for code generation)
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.1.3
|
||||
- **Title**: Define `module.yaml` schema (used for code generation)
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Define `module.yaml` schema (used for code generation)
|
||||
|
||||
## Requirements
|
||||
- Define `module.yaml` schema (used for code generation)
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.1.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.2.1: Create `internal/registry/registry.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.2.1
|
||||
- **Title**: Create `internal/registry/registry.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/registry/registry.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/registry/registry.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.2.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase3/3.2.2-add-registration-validation.md
Normal file
40
docs/stories/phase3/3.2.2-add-registration-validation.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 3.2.2: Add registration validation:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.2.2
|
||||
- **Title**: Add registration validation:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.2
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add registration validation:
|
||||
|
||||
## Requirements
|
||||
- Add registration validation:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.2.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.3.1: Create `scripts/generate-permissions.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.3.1
|
||||
- **Title**: Create `scripts/generate-permissions.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `scripts/generate-permissions.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `scripts/generate-permissions.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.3.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.3.2: Add `//go:generate` directive to `pkg/perm/perm.go`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.3.2
|
||||
- **Title**: Add `//go:generate` directive to `pkg/perm/perm.go`
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add `//go:generate` directive to `pkg/perm/perm.go`
|
||||
|
||||
## Requirements
|
||||
- Add `//go:generate` directive to `pkg/perm/perm.go`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.3.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.3.3: Update `Makefile` with `make generate` command
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.3.3
|
||||
- **Title**: Update `Makefile` with `make generate` command
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.3
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Update `Makefile` with `make generate` command
|
||||
|
||||
## Requirements
|
||||
- Update `Makefile` with `make generate` command
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.3.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.4.1: Create `internal/pluginloader/loader.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.4.1
|
||||
- **Title**: Create `internal/pluginloader/loader.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/pluginloader/loader.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/pluginloader/loader.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.4.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.4.2: Implement `internal/pluginloader/static_loader.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.4.2
|
||||
- **Title**: Implement `internal/pluginloader/static_loader.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/pluginloader/static_loader.go`:
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/pluginloader/static_loader.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.4.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.4.3: Implement `internal/pluginloader/plugin_loader.go` (optional):
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.4.3
|
||||
- **Title**: Implement `internal/pluginloader/plugin_loader.go` (optional):
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.4
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Implement `internal/pluginloader/plugin_loader.go` (optional):
|
||||
|
||||
## Requirements
|
||||
- Implement `internal/pluginloader/plugin_loader.go` (optional):
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.4.3 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.5.1: Create `internal/module/initializer.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.5.1
|
||||
- **Title**: Create `internal/module/initializer.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `internal/module/initializer.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `internal/module/initializer.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.5.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase3/3.5.2-run-migrations.md
Normal file
40
docs/stories/phase3/3.5.2-run-migrations.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 3.5.2: Run migrations:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.5.2
|
||||
- **Title**: Run migrations:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.5
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Run migrations:
|
||||
|
||||
## Requirements
|
||||
- Run migrations:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.5.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
50
docs/stories/phase3/3.6.1-extend-pkgmodulemodulego.md
Normal file
50
docs/stories/phase3/3.6.1-extend-pkgmodulemodulego.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Task 3.6.1: Extend `pkg/module/module.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.6.1
|
||||
- **Title**: Extend `pkg/module/module.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Extend `pkg/module/module.go`:
|
||||
|
||||
## Requirements
|
||||
- Extend `pkg/module/module.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.6.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
type IModule interface {
|
||||
// ... existing methods
|
||||
OnStart(ctx context.Context) error // Optional
|
||||
OnStop(ctx context.Context) error // Optional
|
||||
}
|
||||
```
|
||||
40
docs/stories/phase3/3.6.2-integrate-with-fxlifecycle.md
Normal file
40
docs/stories/phase3/3.6.2-integrate-with-fxlifecycle.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 3.6.2: Integrate with fx.Lifecycle:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.6.2
|
||||
- **Title**: Integrate with fx.Lifecycle:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.6
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Integrate with fx.Lifecycle:
|
||||
|
||||
## Requirements
|
||||
- Integrate with fx.Lifecycle:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.6.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
40
docs/stories/phase3/3.7.1-create-cmdplatformctlmaingo.md
Normal file
40
docs/stories/phase3/3.7.1-create-cmdplatformctlmaingo.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Task 3.7.1: Create `cmd/platformctl/main.go`:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.7.1
|
||||
- **Title**: Create `cmd/platformctl/main.go`:
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.7
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `cmd/platformctl/main.go`:
|
||||
|
||||
## Requirements
|
||||
- Create `cmd/platformctl/main.go`:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.7.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task 3.7.2: Add to `Makefile`: `make install-cli`
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 3.7.2
|
||||
- **Title**: Add to `Makefile`: `make install-cli`
|
||||
- **Phase**: 3 - Module Framework
|
||||
- **Section**: 3.7
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Add to `Makefile`: `make install-cli`
|
||||
|
||||
## Requirements
|
||||
- Add to `Makefile`: `make install-cli`
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 3.7.2 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
58
docs/stories/phase4/4.1.1-create-modulesblog-directory.md
Normal file
58
docs/stories/phase4/4.1.1-create-modulesblog-directory.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Task 4.1.1: Create `modules/blog/` directory:
|
||||
|
||||
## Metadata
|
||||
- **Task ID**: 4.1.1
|
||||
- **Title**: Create `modules/blog/` directory:
|
||||
- **Phase**: 4 - Sample Feature Module (Blog)
|
||||
- **Section**: 4.1
|
||||
- **Status**: Pending
|
||||
- **Priority**: High
|
||||
- **Estimated Time**: TBD
|
||||
- **Dependencies**: TBD
|
||||
|
||||
## Description
|
||||
Create `modules/blog/` directory:
|
||||
|
||||
## Requirements
|
||||
- Create `modules/blog/` directory:
|
||||
|
||||
## Implementation Steps
|
||||
1. TODO: Add implementation steps
|
||||
2. TODO: Add implementation steps
|
||||
3. TODO: Add implementation steps
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Task 4.1.1 is completed
|
||||
- [ ] All requirements are met
|
||||
- [ ] Code compiles and tests pass
|
||||
|
||||
## Related ADRs
|
||||
- See relevant ADRs in `docs/adr/`
|
||||
|
||||
## Implementation Notes
|
||||
- TODO: Add implementation notes
|
||||
|
||||
## Testing
|
||||
```bash
|
||||
# TODO: Add test commands
|
||||
go test ./...
|
||||
```
|
||||
|
||||
|
||||
## Code Reference
|
||||
|
||||
```go
|
||||
modules/blog/
|
||||
├── go.mod
|
||||
├── module.yaml
|
||||
├── internal/
|
||||
│ ├── api/
|
||||
│ │ └── handler.go
|
||||
│ ├── domain/
|
||||
│ │ ├── post.go
|
||||
│ │ └── post_repo.go
|
||||
│ └── service/
|
||||
│ └── post_service.go
|
||||
└── pkg/
|
||||
└── module.go
|
||||
```
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user