Org App

Features & Capabilities

Org App - Features & Capabilities Report

Template Version: 1.0.0 Generated: 2026-01-22 Package: @epicdm/flowstate-app-org App ID: org


Table of Contents

  1. Overview
  2. App Identity
  3. Feature Categories
  4. Capabilities
  5. Data Models
  6. User Workflows
  7. Integration Points
  8. Architecture Summary
  9. Quality & Compliance

Overview

Purpose

The Org App is the central administration application for FlowState. It provides comprehensive management of organizations, workspaces, users, and attributes (categories and tags). It also handles external sync configuration for integrating with third-party services like GitHub. This app establishes the foundational multi-tenant structure that all other FlowState applications depend on.

Target Users

User TypeDescriptionPrimary Use Cases
System AdministratorsGlobal system managementCreate organizations, configure sync providers
Organization OwnersOrg-level managementManage workspaces, define attributes, invite users
Workspace AdministratorsWorkspace-level settingsConfigure workspace attributes, manage workspace users

Value Proposition

  • Multi-Tenant Foundation: Organizations > Workspaces hierarchy
  • Attribute System: Flexible categories and tags for entity classification
  • External Sync: Connect to GitHub and custom APIs
  • OAuth Integration: Secure third-party authentication
  • Preset Seeding: Quick setup with predefined attribute sets

App Identity

PropertyValue
IDorg
Display NameOrganizations
Package Name@epicdm/flowstate-app-org
Version1.0.0
Categorybusiness
Iconbuilding-2
Color#3B82F6
Base Path/apps/org
Permissionsdatabase

Entry Points

Entry PointPathDescription
Main Exportsrc/index.tsPrimary package export
Standalonesrc/standalone.tsxStandalone app entry
App Componentsrc/App.tsxMain React component with routing
Pluginsrc/plugin.tsFlowState plugin registration

Feature Categories

Category 1: Organization Management

Manage multi-tenant organizations

Feature: Organization CRUD Operations

PropertyDetails
IDorg-crud
StatusImplemented
PriorityHigh

Description: Create, view, edit, and manage organizations. Organizations serve as the top-level tenant container for all FlowState data.

User Story: As a system administrator, I want to manage organizations so that I can support multiple tenants with data isolation.

Acceptance Criteria:

  • [x] Create organizations with name and metadata
  • [x] View organizations in list view
  • [x] Edit organization details
  • [x] Auto-select newly created org if none selected
  • [x] Persist selection to localStorage

Implementation:

ComponentPathPurpose
OrganizationsPagesrc/pages/OrganizationsPage.tsxOrg management page
OrgsPage@epicdm/flowstate-app-frameworkShared org component

Routes:

  • /orgs - Organization list and management

Category 2: Workspace Management

Organize work into logical workspaces

Feature: Workspace CRUD Operations

PropertyDetails
IDworkspace-crud
StatusImplemented
PriorityHigh

Description: Create and manage workspaces within organizations. Workspaces provide logical groupings of projects, tasks, and other entities.

User Story: As an organization owner, I want to create workspaces so that I can organize work into logical groupings.

Acceptance Criteria:

  • [x] Create workspaces within organizations
  • [x] View workspaces in list view
  • [x] Edit workspace details
  • [x] Auto-select newly created workspace if none selected
  • [x] Persist selection to localStorage

Implementation:

ComponentPathPurpose
WorkspacesPageComponentsrc/pages/WorkspacesPage.tsxWorkspace management page
WorkspacesPage@epicdm/flowstate-app-frameworkShared workspace component

Routes:

  • /workspaces - Workspace list and management

Category 3: User Management

View and manage organization users

Feature: User Directory

PropertyDetails
IDuser-directory
StatusImplemented
PriorityMedium

Description: View and manage users within the organization. Provides a directory of all organization members.

User Story: As an organization owner, I want to view users so that I can manage organization membership.

Acceptance Criteria:

  • [x] View users in list view
  • [x] Display user details and roles
  • [x] Filter and search users

Implementation:

ComponentPathPurpose
UsersPageComponentsrc/pages/UsersPage.tsxUser directory page
UsersPage@epicdm/flowstate-app-frameworkShared users component

Routes:

  • /users - User directory

Category 4: Attribute Management

Define categories and tags for entity classification

Feature: Attribute CRUD Operations

PropertyDetails
IDattribute-crud
StatusImplemented
PriorityHigh

Description: Create, edit, and delete attributes (categories and tags) that apply across the organization. Attributes can be seeded from presets or created manually.

User Story: As an organization owner, I want to define attributes so that I can classify and organize entities consistently.

Acceptance Criteria:

  • [x] Create categories with title, name, description, color
  • [x] Create tags with title, name, description, color
  • [x] Edit existing attributes
  • [x] Delete attributes
  • [x] Archive attributes
  • [x] Color picker with default palette

Implementation:

ComponentPathPurpose
AttributesPagesrc/pages/AttributesPage.tsxAttribute management page
AttributeFormModalsrc/pages/AttributesPage.tsxCreate/edit modal
AttributeManager@epicdm/flowstate-app-frameworkShared attribute manager
useAttributes@epicdm/flowstate-app-frameworkAttribute operations hook

Routes:

  • /attributes - Attribute management

Feature: Attribute Seeding

PropertyDetails
IDattribute-seeding
StatusImplemented
PriorityMedium

Description: Seed attributes from predefined presets for quick setup. Multiple preset types are available for different use cases.

User Story: As an organization owner, I want to seed default attributes so that I can quickly set up standard categories and tags.

Acceptance Criteria:

  • [x] Seed from single preset
  • [x] Seed from multiple presets
  • [x] Skip existing attributes to prevent duplicates
  • [x] Show seed button when no attributes exist
  • [x] Report seeding results

Implementation:

ComponentPathPurpose
AttributeSeedService@epicdm/flowstate-app-frameworkSeeding service
handleSeedDefaultssrc/pages/AttributesPage.tsxSingle preset handler
handleSeedFromPresetssrc/pages/AttributesPage.tsxMulti-preset handler

Category 5: Sync Configuration

Configure external data source synchronization

Feature: Sync Settings

PropertyDetails
IDsync-settings
StatusImplemented
PriorityMedium

Description: Configure synchronization with external data sources including GitHub and custom APIs. Supports OAuth authentication for secure connections.

User Story: As a workspace administrator, I want to configure sync providers so that I can integrate external data into FlowState.

Acceptance Criteria:

  • [x] View available sync providers
  • [x] Configure provider settings
  • [x] Register built-in providers (GitHub, Custom API)
  • [x] Handle OAuth authentication flows

Implementation:

ComponentPathPurpose
SyncPagesrc/pages/SyncPage.tsxSync settings page
SyncSettingsTab@epicdm/flowstate-app-frameworkShared sync component
registerBuiltInProviders@epicdm/flowstate-app-frameworkProvider registration

Routes:

  • /sync - Sync configuration

Feature: OAuth Callback Handling

PropertyDetails
IDoauth-callback
StatusImplemented
PriorityMedium

Description: Handle OAuth callbacks from external sync providers, completing the authentication flow.

User Story: As a user, I want OAuth callbacks handled automatically so that my authentication completes seamlessly.

Acceptance Criteria:

  • [x] Handle provider-specific callbacks
  • [x] Redirect to sync page on success
  • [x] Redirect to sync page with error on failure
  • [x] Support multiple providers

Implementation:

ComponentPathPurpose
SyncOAuthCallbackPagesrc/pages/SyncOAuthCallbackPage.tsxCallback handler
FrameworkSyncOAuthCallbackPage@epicdm/flowstate-app-frameworkShared callback component

Routes:

  • /sync/callback/:providerId - OAuth callback endpoint

Capabilities

Core Capabilities

CapabilityDescriptionImplementation
Multi-Tenant StructureOrganization > Workspace hierarchyRxDB collections with org/workspace IDs
Attribute SystemCategories and tags for classificationAttributeModel with type field
External SyncConnect to GitHub, custom APIsSync provider registry
OAuth FlowsSecure third-party authenticationOAuth callback handling
Preset SeedingQuick attribute setupAttributeSeedService with presets

Technical Capabilities

CapabilityStatusNotes
CRUD OperationsYesFull CRUD on orgs, workspaces, attributes
Real-time UpdatesYesRxDB reactive subscriptions
Offline SupportYesRxDB local-first architecture
Local PersistenceYesSelection persisted to localStorage
OAuth SupportYesProvider-based OAuth flows

Integration Capabilities

IntegrationTypeDescription
GitHubExternalGitHub repository sync
Custom APIExternalCustom API endpoint sync
RxDB ServerInternalReplication for data sync
FlowState FrameworkInternalAuth, layout, shared components

Data Models

Collections Used

CollectionDescriptionOperationsSource
orgsOrganization recordsCRUD, Query@epicdm/flowstate-collections
workspacesWorkspace recordsCRUD, Query@epicdm/flowstate-collections
usersUser recordsQuery@epicdm/flowstate-collections
attributesCategories and tagsCRUD, Query@epicdm/flowstate-collections

Entity Relationships

Organization
    |
    +-- Workspaces (hasMany)
    |       |
    |       +-- Projects (hasMany)
    |       |
    |       +-- Tasks (hasMany)
    |       |
    |       +-- Attributes (hasMany, scoped)
    |
    +-- Users (hasMany, via membership)
    |
    +-- Attributes (hasMany, org-level)

Key Data Flows

User Action --> Component --> Framework Component --> RxDB Collection --> UI Update
                                     |
                                     +--> Service (AttributeSeedService)
                                     |
                                     +--> Replication --> Server

User Workflows

Workflow 1: Organization Setup

Initial organization creation and configuration

Trigger: New user or system administrator

Steps:

StepActionComponentOutcome
1Navigate to OrgsSidebarOrgs page displayed
2Create organizationOrganizationsPageOrg created
3Navigate to WorkspacesSidebarWorkspaces page displayed
4Create workspaceWorkspacesPageComponentWorkspace created
5Navigate to AttributesSidebarAttributes page displayed
6Seed default attributesAttributesPageAttributes created

Success Outcome: Organization fully configured with workspace and attributes Failure Handling: Validation errors shown, state preserved


Workflow 2: Attribute Management

Create custom attributes for entity classification

Trigger: Need to categorize or tag entities

Steps:

StepActionComponentOutcome
1Navigate to AttributesSidebarAttributes page displayed
2Click create buttonAttributeManagerModal opens
3Select type (category/tag)AttributeFormModalType selected
4Enter detailsAttributeFormModalForm filled
5Select colorAttributeFormModalColor selected
6Save attributehandleFormSubmitAttribute created

Success Outcome: New attribute available for entity classification Failure Handling: Validation errors shown in modal


Workflow 3: Sync Configuration

Connect external data source

Trigger: Need to import data from GitHub or API

Steps:

StepActionComponentOutcome
1Navigate to SyncSidebarSync page displayed
2Select providerSyncSettingsTabProvider options shown
3Configure settingsSyncSettingsTabSettings entered
4Initiate OAuth (if needed)SyncSettingsTabOAuth flow starts
5Complete OAuthSyncOAuthCallbackPageCallback processed
6Redirect to SyncRouterSync page with success

Success Outcome: External data source connected Failure Handling: Error redirect with message


Integration Points

Internal Integrations

IntegrationPackagePurpose
FlowState Framework@epicdm/flowstate-app-frameworkApp container, auth, layout, shared components
Collections@epicdm/flowstate-collectionsData models and schemas
RxDB React@epicdm/flowstate-rxdb-reactReactive subscriptions

External Integrations

IntegrationTypeConfiguration
GitHubOAuthGitHub App credentials
Custom APIAPI Key/OAuthCustom endpoint configuration

MCP Integration

ToolPurposeExample Usage
collection-queryQuery orgs, workspaces{"collection": "orgs", "selector": {}}
collection-createCreate entities{"collection": "attributes", "data": {...}}
collection-updateUpdate attributes{"collection": "attributes", "id": "...", "data": {...}}

Architecture Summary

Directory Structure

src/
├── components/          # UI components
│   ├── Header.tsx      # App header
│   └── Sidebar.tsx     # Navigation sidebar
├── db/                 # Database configuration
│   ├── collections.ts  # Collection exports
│   ├── schema.ts       # Schema exports
│   └── types.ts        # Type exports
├── pages/              # Page components
│   ├── AttributesPage.tsx        # Attribute management
│   ├── OrganizationsPage.tsx     # Org management
│   ├── SyncOAuthCallbackPage.tsx # OAuth callback
│   ├── SyncPage.tsx              # Sync settings
│   ├── UsersPage.tsx             # User directory
│   └── WorkspacesPage.tsx        # Workspace management
├── App.tsx             # Main app with routing
├── index.ts            # Package exports
├── plugin.ts           # FlowState plugin config
├── standalone.tsx      # Standalone entry
└── styles.css          # App styles

Key Architectural Patterns

PatternUsageExample
State ManagementRxDB + FrameworkCollections for data, framework for context
Data FlowReactive subscriptionsRxDB observables through hooks
Component ArchitectureFramework delegationPages wrap shared framework components
RoutingReact Router v6Flat route structure
Plugin SystemFlowState pluginsPlugin registration in plugin.ts

Framework Delegation

The Org App delegates most functionality to the FlowState App Framework:

Local ComponentFramework ComponentPurpose
OrganizationsPageOrgsPageOrg CRUD UI
WorkspacesPageComponentWorkspacesPageWorkspace CRUD UI
UsersPageComponentUsersPageUser directory UI
AttributesPageAttributeManager, useAttributesAttribute management
SyncPageSyncSettingsTabSync configuration
SyncOAuthCallbackPageSyncOAuthCallbackPageOAuth handling

Quality & Compliance

Test Coverage

Test TypeLocationCoverage Target
Unit Testssrc/**/__tests__/>= 80%
E2E Testsplaywright/Critical paths

Accessibility

RequirementStatusNotes
WCAG 2.1 AAIn ProgressFramework components follow standards
Keyboard NavigationYesTab navigation supported
Screen Reader SupportPartialAria labels on interactive elements
Focus ManagementYesModal focus trapping

Security Considerations

ConsiderationImplementation
Multi-Tenant IsolationOrg/workspace IDs on all queries
OAuth SecuritySecure callback handling
Input ValidationForm validation on all inputs
Local StorageSelection persistence only

FlowState Alignment

Spec-Driven Development

This app follows the FlowState Standard for spec-driven development:

  • Requirements: .flowstate/specs/{{feature-name}}/requirements.md
  • Design: .flowstate/specs/{{feature-name}}/design.md
  • Wireframes: .flowstate/specs/{{feature-name}}/wireframes.html
  • Tasks: .flowstate/specs/{{feature-name}}/tasks.md

Quality Gates

GateRequirementStatus
Test Coverage>= 80% statementsIn Progress
TypeScript StrictNo any without justificationPass
AccessibilityWCAG 2.1 AAIn Progress
Documentation100% TSDoc on public APIsIn Progress
SecurityNo critical vulnerabilitiesPass

Appendix

DocumentLocationPurpose
FLOWSTATE.md.flowstate/docs/FLOWSTATE.mdDevelopment workflow
PROCESS.md.flowstate/docs/PROCESS.mdDevelopment process
TDD.md.flowstate/steering/TDD.mdTesting standards
QUALITY.md.flowstate/steering/QUALITY.mdCode quality

Version History

VersionDateAuthorChanges
1.0.02026-01-22ClaudeInitial documentation
Previous
Getting Started