feat: LikeC4 architecture diagrams first pass BED-7493#2412
feat: LikeC4 architecture diagrams first pass BED-7493#2412superlinkx wants to merge 4 commits intomainfrom
Conversation
feat: just command for starting the likeC4 server
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review infoConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (4)
📝 WalkthroughWalkthroughAdds LikeC4 architecture artifacts for BloodHound CE: project config and DSL, system/container models, API server/component/daemon/service models, UI components, external collectors, relationship mappings, multiple views, and a justfile target. Changes
Sequence Diagram(s)sequenceDiagram
participant SharpHound as SharpHound
participant API as API Server\n(httpRouter → authMiddleware → restApi)
participant DataPipe as DataPipe Daemon
participant Graphify as Graphify Service
participant GraphDB as Graph DB (DAWGS / Neo4j)
SharpHound->>API: Upload collector payload (HTTP REST)
API->>API: authMiddleware → authenticator / authorizer
API->>DataPipe: Dispatch ingestion job
DataPipe->>Graphify: Submit graphification task
Graphify->>GraphDB: Write graph data
GraphDB-->>Graphify: Ack / indexes
Graphify-->>DataPipe: Completion status
DataPipe-->>API: Job result / status update
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@architecture/model/relationships.c4`:
- Line 54: Change the relationship so the Security Operator actor consumes the
user-facing UI component instead of the internal apiClientLib: replace the
target bloodhound.ui.apiClientLib with a UI component (e.g., bloodhound.ui.webUI
or bloodhound.ui.userInterface) in the relationship `securityOperator -[sync]->
...` and keep a separate relationship from that UI component to
bloodhound.ui.apiClientLib to show the implementation detail (UI ->
apiClientLib).
In `@justfile`:
- Around line 180-182: The justfile target view-architecture currently runs "npx
-y likec4 start" which pulls the latest likec4 and can cause non-reproducible
output; update the target to pin a specific likec4 CLI version (e.g. replace
"npx -y likec4 start" with a pinned invocation like "npx -y likec4@<version>
start" or use an installed devDependency and run the pinned binary) so the
command always uses the same CLI version; adjust any CI or local docs to
reference the chosen <version> and ensure the change targets the
view-architecture entry.
ℹ️ Review info
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
architecture/likec4.config.jsonarchitecture/model/api-server.c4architecture/model/bloodhound.c4architecture/model/external.c4architecture/model/relationships.c4architecture/model/ui.c4architecture/specification.c4architecture/views/api-server.c4architecture/views/auth.c4architecture/views/containers.c4architecture/views/context.c4architecture/views/data-pipeline.c4architecture/views/ui.c4justfile
There was a problem hiding this comment.
🧹 Nitpick comments (1)
architecture/model/relationships.c4 (1)
14-20: Consider reducing duplicated collector upload edges to avoid drift.Line 14 + Line 15 (and Line 18 + Line 19) model the same upload path at two levels. This is valid, but it can diverge over time when only one edge gets updated. Consider keeping a single authoritative edge per interaction level or adding a short
intentional duplicationnote here.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@architecture/model/relationships.c4` around lines 14 - 20, The diagram contains duplicated upload edges for the same interactions (sharpHound -> bloodhound.apiServer and sharpHound -> bloodhound.apiServer.restApi; same for azureHound), which risks drift; pick a single authoritative edge per interaction (e.g., keep the specific restApi edges bloodhound.apiServer.restApi and remove the broader bloodhound.apiServer upload edges) or, if you intentionally want both, add a short comment like "intentional duplication" next to the paired edges (sharpHound, azureHound, bloodhound.apiServer, bloodhound.apiServer.restApi) so reviewers know the duplication is deliberate.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@architecture/model/relationships.c4`:
- Around line 14-20: The diagram contains duplicated upload edges for the same
interactions (sharpHound -> bloodhound.apiServer and sharpHound ->
bloodhound.apiServer.restApi; same for azureHound), which risks drift; pick a
single authoritative edge per interaction (e.g., keep the specific restApi edges
bloodhound.apiServer.restApi and remove the broader bloodhound.apiServer upload
edges) or, if you intentionally want both, add a short comment like "intentional
duplication" next to the paired edges (sharpHound, azureHound,
bloodhound.apiServer, bloodhound.apiServer.restApi) so reviewers know the
duplication is deliberate.
ℹ️ Review info
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
architecture/model/relationships.c4justfile
🚧 Files skipped from review as they are similar to previous changes (1)
- justfile
Description
Adds LikeC4 architecture as code for our project. These were crafted with AI assistance (multiple iterations), followed by my own combing through the results for accuracy checks. This is not the end all of our architecture documentation, but it should provide a solid starting point for us to continue to improve our architecture documentation and understanding. Proper notation and color differentiation is included to make it easier to understand what a viewer is looking at.
Motivation and Context
Resolves BED-7493
We've long been lacking good, consolidated architecture documentation. This is an attempt to treat architecture artifacts as code so we can continue to improve our documentation and understanding of our systems.
How Has This Been Tested?
All views were manually vetted in the LikeC4 web app:
just view-architectureScreenshots (optional):
Types of changes
Checklist:
Summary by CodeRabbit
Documentation
Chores