Skip to content

docs: Add Architecture and ACD Documentation - #715

Open
tobias-oetzel wants to merge 2 commits into
mainfrom
docs/add-architecture-acd-documentation
Open

docs: Add Architecture and ACD Documentation#715
tobias-oetzel wants to merge 2 commits into
mainfrom
docs/add-architecture-acd-documentation

Conversation

@tobias-oetzel

@tobias-oetzel tobias-oetzel commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds comprehensive architecture and code documentation for the OpenMFP Portal.

Changes

New Documentation Files

  • docs/ARCHITECTURE.md: High-level architecture documentation covering:

    • System overview and purpose
    • Component architecture with Mermaid diagrams
    • Key workflows and data flows
    • Dependencies and integrations
    • Deployment architecture
    • Security considerations
    • Extensibility patterns
  • docs/ACD.md: Architecture & Code Documentation with implementation details:

    • Component structure and key modules
    • Frontend and backend code organization
    • State management patterns
    • API integration details
    • Routing and navigation implementation
    • Configuration options
    • Development workflow
    • Testing strategy
    • Common tasks and troubleshooting

Documentation Highlights

  • Uses Mermaid diagrams for visual representation (not ASCII art)
  • Based on actual code analysis (no hallucinated information)
  • Includes detailed examples from the codebase
  • Covers both development and production environments
  • Provides practical troubleshooting guidance
  • Documents all key dependencies and their purposes

Architecture Overview

The portal is a micro-frontend platform built with:

  • Frontend: Angular 18 + Luigi Framework
  • Backend: NestJS 10 with Kubernetes integration
  • Dynamic Configuration: Kubernetes ContentConfiguration CRDs

The architecture supports dynamic content loading, entity-based navigation, and extensible micro-frontend integration.

Benefits

  • Helps new developers understand the system quickly
  • Provides reference for common development tasks
  • Documents integration points and extensibility
  • Includes troubleshooting guides for common issues
  • Serves as architectural decision record

Related

  • Uses @openmfp/portal-ui-lib and @openmfp/portal-server-lib
  • Integrates with Kubernetes ContentConfiguration CRDs
  • Based on Luigi Framework for micro-frontend orchestration

Summary by CodeRabbit

  • Documentation
    • Updated licensing reference in README
    • Added comprehensive Architecture & Code Documentation covering system structure, technology stack, component architecture, state management, routing, configuration, deployment processes, security practices, and extensibility guidance
    • Added detailed Architecture documentation with system overview, workflows, dependencies, and operational guidance

Add comprehensive documentation for the OpenMFP Portal:
- ARCHITECTURE.md: High-level architecture, component diagrams, workflows, dependencies
- ACD.md: Architecture & Code Documentation with implementation details

Documentation includes Mermaid diagrams for visual representation of:
- System architecture
- Component interactions
- Data flows
- Deployment architecture
@tobias-oetzel
tobias-oetzel requested review from a team as code owners February 18, 2026 12:45
@coderabbitai

coderabbitai Bot commented Feb 18, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the project documentation. README.md links to updated REUSE tool URL. Two comprehensive new architecture documentation files are added: ACD.md covering frontend/backend structure and development workflows, and ARCHITECTURE.md detailing OpenMFP Portal design, technology stack, deployment, and extensibility.

Changes

Cohort / File(s) Summary
README Update
README.md
Updated licensing link reference from portal-server-lib REUSE tool URL to portal REUSE tool URL.
Architecture Documentation
docs/ACD.md, docs/ARCHITECTURE.md
Added comprehensive architecture and code documentation covering frontend/backend structure, technology stack, state management, API integration, routing, configuration, deployment, security, testing, development workflows, and extensibility guidance.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 With documents so fine and detailed so clear,
Our architecture now shines without fear,
From frontend to backend, each layer explained,
The path to extend is now gently maintained,
A blueprint for builders—hop onward with cheer!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding two comprehensive documentation files (ARCHITECTURE.md and ACD.md) to the docs folder.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/add-architecture-acd-documentation

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/ACD.md (1)

1-994: Excellent comprehensive documentation!

This Architecture & Code Documentation is thorough and well-structured. It provides valuable guidance for developers, covering frontend/backend structure, API integration, routing, configuration, development workflow, testing, Docker builds, troubleshooting, and security best practices. The code examples are technically accurate, and the use of Mermaid diagrams enhances clarity.

The documentation serves as an excellent onboarding resource and reference guide for the OpenMFP Portal project.


Note: The markdownlint tool flagged lines 7 and 72 for missing language specifiers on fenced code blocks. These are file tree structures displayed as plain text, which is intentional for visual clarity. No action is required, but you could optionally add text or plaintext as the language identifier if you prefer to silence the linter.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ACD.md` around lines 1 - 994, The linter flagged the two fenced code
blocks that contain the ASCII file trees (the blocks beginning with "frontend/"
and the block beginning with "backend/") for missing language specifiers; add a
language identifier such as "text" or "plaintext" to those fenced code blocks to
silence markdownlint (i.e., change ``` to ```text for the file-tree blocks),
leaving all other fenced blocks unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/ACD.md`:
- Around line 1-994: The linter flagged the two fenced code blocks that contain
the ASCII file trees (the blocks beginning with "frontend/" and the block
beginning with "backend/") for missing language specifiers; add a language
identifier such as "text" or "plaintext" to those fenced code blocks to silence
markdownlint (i.e., change ``` to ```text for the file-tree blocks), leaving all
other fenced blocks unchanged.

Comment thread docs/ACD.md
├── src/
│ ├── app.module.ts # Root application module
│ ├── main.ts # NestJS bootstrap
│ ├── entity-context-provider/

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the structure has been changed a lot, the latest version of the backend contains only

│ ├── app.module.ts # Root application module
│ ├── main.ts # NestJS bootstrap

all the other has been removed

Comment thread docs/ACD.md

config({ path: './.env' });

const portalOptions: PortalModuleOptions = {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the content differs with the main branch content

Comment thread docs/ACD.md
**Base URL**: `/rest`

**Key endpoints provided by PortalModule:**
- `GET /rest/service-providers` - Fetch dynamic navigation and content configuration

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we donlt have these endpoints only

/rest/config
/rest/config/:entity ....

Comment thread docs/ACD.md
**KubernetesServiceProvidersService Implementation:**

```typescript
export class KubernetesServiceProvidersService implements ServiceProviderService {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has been removed

Comment thread docs/ACD.md

```typescript
@Injectable()
export class AccountEntityContextProvider implements EntityContextProvider {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has been removed

Comment thread docs/ACD.md

```typescript
@Injectable()
export class OpenmfpPortalProvider implements PortalContextProvider {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has been removed

Comment thread docs/ACD.md
**Example Configuration:**

```typescript
const portalOptions: PortalModuleOptions = {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

different content in the main branch

@nexus49

nexus49 commented Feb 26, 2026

Copy link
Copy Markdown
Member

I don't think a documentation on that detail level (mentioning files and such) is meaningful, for end users (or ai-agents) as it is quickly out of date. Certainly if humans mange the code. I'd suggest to remove such details

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants