generated from noisedestroyers/claude
Merge branch 'noisedestroyers/define-implement'
This commit is contained in:
@@ -170,6 +170,7 @@ graph TB
|
|||||||
- **Purpose**: Orchestrate complete publishing workflows
|
- **Purpose**: Orchestrate complete publishing workflows
|
||||||
- **Technology**: ASP.NET Core + Hangfire
|
- **Technology**: ASP.NET Core + Hangfire
|
||||||
- **Responsibilities**:
|
- **Responsibilities**:
|
||||||
|
- Package creation from successful builds
|
||||||
- Coordinate document generation
|
- Coordinate document generation
|
||||||
- Manage cloud uploads
|
- Manage cloud uploads
|
||||||
- Update help center articles
|
- Update help center articles
|
||||||
@@ -188,6 +189,19 @@ erDiagram
|
|||||||
datetime LastLogin
|
datetime LastLogin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Packages {
|
||||||
|
int Id PK
|
||||||
|
string Name
|
||||||
|
string Version
|
||||||
|
string Description
|
||||||
|
int SourceBuildId FK
|
||||||
|
json CloudStorageConfig
|
||||||
|
json HelpCenterConfig
|
||||||
|
string Status
|
||||||
|
datetime CreatedAt
|
||||||
|
datetime UpdatedAt
|
||||||
|
}
|
||||||
|
|
||||||
Projects {
|
Projects {
|
||||||
int Id PK
|
int Id PK
|
||||||
string Name
|
string Name
|
||||||
@@ -206,24 +220,16 @@ erDiagram
|
|||||||
datetime StartTime
|
datetime StartTime
|
||||||
datetime EndTime
|
datetime EndTime
|
||||||
string LogPath
|
string LogPath
|
||||||
}
|
string ArtifactPath
|
||||||
|
|
||||||
Packages {
|
|
||||||
int Id PK
|
|
||||||
string Name
|
|
||||||
int ProjectId FK
|
|
||||||
json CloudStorageConfig
|
|
||||||
json HelpCenterConfig
|
|
||||||
datetime CreatedAt
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Publications {
|
Publications {
|
||||||
int Id PK
|
int Id PK
|
||||||
int PackageId FK
|
int PackageId FK
|
||||||
string Version
|
|
||||||
string Status
|
string Status
|
||||||
datetime PublishedAt
|
datetime PublishedAt
|
||||||
string ReleaseNotesPath
|
string ReleaseNotesPath
|
||||||
|
json PublicationDetails
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageProviders {
|
StorageProviders {
|
||||||
@@ -242,24 +248,24 @@ erDiagram
|
|||||||
boolean IsActive
|
boolean IsActive
|
||||||
}
|
}
|
||||||
|
|
||||||
Projects ||--o{ Builds : "has builds"
|
Projects ||--o{ Builds : "produces builds"
|
||||||
Projects ||--o{ Packages : "has packages"
|
Builds ||--o| Packages : "creates package"
|
||||||
Packages ||--o{ Publications : "has publications"
|
Packages ||--o{ Publications : "has publications"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Core Entities
|
#### Core Entities
|
||||||
```sql
|
```sql
|
||||||
|
-- Packages: Top-level finalized software releases
|
||||||
|
Packages (Id, Name, Version, Description, SourceBuildId, CloudStorageConfig, HelpCenterConfig, Status, CreatedAt, UpdatedAt)
|
||||||
|
|
||||||
-- Projects from CruiseControl.NET
|
-- Projects from CruiseControl.NET
|
||||||
Projects (Id, Name, Description, CCNetProjectName, Status, CreatedAt, UpdatedAt)
|
Projects (Id, Name, Description, CCNetProjectName, Status, CreatedAt, UpdatedAt)
|
||||||
|
|
||||||
-- Build information
|
-- Build information
|
||||||
Builds (Id, ProjectId, BuildNumber, Status, StartTime, EndTime, LogPath)
|
Builds (Id, ProjectId, BuildNumber, Status, StartTime, EndTime, LogPath, ArtifactPath)
|
||||||
|
|
||||||
-- Software packages configuration
|
|
||||||
Packages (Id, Name, ProjectId, CloudStorageConfig, HelpCenterConfig, CreatedAt)
|
|
||||||
|
|
||||||
-- Publishing history
|
-- Publishing history
|
||||||
Publications (Id, PackageId, Version, Status, PublishedAt, ReleaseNotesPath)
|
Publications (Id, PackageId, Status, PublishedAt, ReleaseNotesPath, PublicationDetails)
|
||||||
|
|
||||||
-- User management
|
-- User management
|
||||||
Users (Id, Username, PasswordHash, Role, CreatedAt, LastLogin)
|
Users (Id, Username, PasswordHash, Role, CreatedAt, LastLogin)
|
||||||
@@ -477,6 +483,14 @@ sequenceDiagram
|
|||||||
participant HF as Hangfire
|
participant HF as Hangfire
|
||||||
participant SH as SignalR Hub
|
participant SH as SignalR Hub
|
||||||
|
|
||||||
|
Note over User,UI: Package Creation Phase
|
||||||
|
User->>UI: Select Build & Create Package
|
||||||
|
UI->>GW: POST /api/packages/create-from-build
|
||||||
|
GW->>PUB: Create Package from Build
|
||||||
|
PUB->>SH: Package Created Notification
|
||||||
|
SH->>UI: Real-time Package Status
|
||||||
|
|
||||||
|
Note over User,UI: Publishing Phase
|
||||||
User->>UI: Select Package & Initiate Publishing
|
User->>UI: Select Package & Initiate Publishing
|
||||||
UI->>GW: POST /api/publish/package/{id}
|
UI->>GW: POST /api/publish/package/{id}
|
||||||
GW->>PUB: Queue Publishing Job
|
GW->>PUB: Queue Publishing Job
|
||||||
@@ -494,14 +508,14 @@ sequenceDiagram
|
|||||||
HELP-->>HF: Articles Updated
|
HELP-->>HF: Articles Updated
|
||||||
|
|
||||||
HF->>SH: Notify Completion
|
HF->>SH: Notify Completion
|
||||||
SH->>UI: Real-time Status Update
|
SH->>UI: Real-time Publication Status
|
||||||
UI->>User: Show Completion Status
|
UI->>User: Show Completion Status
|
||||||
```
|
```
|
||||||
|
|
||||||
## Data Flow Architecture
|
## Data Flow Architecture
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart TD
|
||||||
subgraph "External Sources"
|
subgraph "External Sources"
|
||||||
CC[CruiseControl.NET<br/>Build Logs]
|
CC[CruiseControl.NET<br/>Build Logs]
|
||||||
FB[FogBugz/Manuscript<br/>Developer Data]
|
FB[FogBugz/Manuscript<br/>Developer Data]
|
||||||
@@ -512,13 +526,16 @@ flowchart LR
|
|||||||
MS[Manuscript Service<br/>API Client]
|
MS[Manuscript Service<br/>API Client]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "Data Storage"
|
subgraph "Core Data Model"
|
||||||
DB[(PostgreSQL<br/>Centralized Data)]
|
PROJ[Projects<br/>CC.NET Projects]
|
||||||
|
BUILDS[Builds<br/>From Projects]
|
||||||
|
PKG[Packages<br/>Finalized Releases]
|
||||||
|
PUB_DATA[Publications<br/>Publishing History]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "Processing Layer"
|
subgraph "Processing Layer"
|
||||||
DS[Document Service<br/>PDF Generator]
|
DS[Document Service<br/>PDF Generator]
|
||||||
PUB[Publishing Service<br/>Orchestrator]
|
PUB[Publishing Service<br/>Package Creator & Orchestrator]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "Output Channels"
|
subgraph "Output Channels"
|
||||||
@@ -527,30 +544,34 @@ flowchart LR
|
|||||||
end
|
end
|
||||||
|
|
||||||
subgraph "User Interface"
|
subgraph "User Interface"
|
||||||
UI[React Frontend<br/>Management Console]
|
UI[React Frontend<br/>Package Management Console]
|
||||||
end
|
end
|
||||||
|
|
||||||
CC --> PS
|
CC --> PS
|
||||||
FB --> MS
|
FB --> MS
|
||||||
PS --> DB
|
PS --> PROJ
|
||||||
MS --> DB
|
MS --> PROJ
|
||||||
DB --> DS
|
PROJ --> BUILDS
|
||||||
DB --> PUB
|
BUILDS --> PKG
|
||||||
DS --> STOR
|
PKG --> PUB_DATA
|
||||||
|
|
||||||
|
UI --> PKG
|
||||||
|
PKG --> PUB
|
||||||
|
PUB --> DS
|
||||||
PUB --> STOR
|
PUB --> STOR
|
||||||
PUB --> HELP
|
PUB --> HELP
|
||||||
DB --> UI
|
PUB --> PUB_DATA
|
||||||
|
|
||||||
classDef external fill:#ffebee
|
classDef external fill:#ffebee
|
||||||
classDef ingestion fill:#e3f2fd
|
classDef ingestion fill:#e3f2fd
|
||||||
classDef storage fill:#f3e5f5
|
classDef coredata fill:#e8f5e8
|
||||||
classDef processing fill:#e8f5e8
|
classDef processing fill:#fff3e0
|
||||||
classDef output fill:#fff3e0
|
classDef output fill:#f3e5f5
|
||||||
classDef ui fill:#fce4ec
|
classDef ui fill:#fce4ec
|
||||||
|
|
||||||
class CC,FB external
|
class CC,FB external
|
||||||
class PS,MS ingestion
|
class PS,MS ingestion
|
||||||
class DB storage
|
class PROJ,BUILDS,PKG,PUB_DATA coredata
|
||||||
class DS,PUB processing
|
class DS,PUB processing
|
||||||
class STOR,HELP output
|
class STOR,HELP output
|
||||||
class UI ui
|
class UI ui
|
||||||
|
|||||||
Reference in New Issue
Block a user