Commit Graph
97 Commits
Author SHA1 Message Date
Juan Denis 44f3abe8d2 Enhance metrics graph visuals and tooltip UI
Switches from LineChart to AreaChart for main metrics graph, adds animated gradients and glow effects, and updates legend styling. Tooltip UI is improved with clearer layout, colored dots, and value formatting. Chart colors now use explicit hex values for better SVG compatibility, and LESS styles are updated for improved appearance and interactivity.
2026-01-19 13:30:50 -05:00
Juan Denis d5cd57921c Update asset references in index.html
Changed script and stylesheet references in index.html to point to new asset files, likely after a new build.
2026-01-19 13:22:26 -05:00
Juan Denis ed390603cc fix: Replace undefined @shadow-xl with @shadow-lg 2026-01-19 13:21:42 -05:00
Juan Denis 643b5d1b14 feat(21-7): Add deployment styles 2026-01-19 12:40:56 -05:00
Juan Denis 6f377957e2 feat(21-5): Create DeploymentProgressModal component 2026-01-19 12:40:02 -05:00
Juan Denis c5fb178a77 feat(21-4): Add deploy button and progress UI 2026-01-19 12:39:33 -05:00
Juan Denis 19643830a9 feat(21-3): Add frontend deploy API method 2026-01-19 12:38:37 -05:00
Juan Denis 617ec1cb6a feat(20-7): Add import existing infrastructure feature 2026-01-19 12:29:28 -05:00
Juan Denis 1d7acf267c feat(20-6): Create WorkflowListModal component 2026-01-19 12:28:44 -05:00
Juan Denis 988aedebcf feat(20-5): Add save/load UI to WorkflowBuilder 2026-01-19 12:27:36 -05:00
Juan Denis 4e2e7ec031 feat(20-4): Add frontend workflow API methods 2026-01-19 12:26:43 -05:00
Juan DenisandClaude Opus 4.5 a1aec5fd4e plan(20): Workflow Save/Load execution plan
7 tasks planned:
- Workflow SQLAlchemy model (nodes, edges as JSON)
- CRUD API endpoints (/api/v1/workflows)
- Blueprint registration
- Frontend API methods
- Save/load UI with toolbar
- WorkflowListModal component
- Import existing infrastructure as nodes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:23:16 -05:00
Juan DenisandClaude Opus 4.5 fd547543d4 feat(19-6): Add connection styles
- Connection error toast with slide animation
- Edge label styles (visible on hover/select)
- Edge delete button styling
- Handle hover scale effect
- Valid/invalid handle highlighting during connect
- Selected edge white stroke effect

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:19:33 -05:00
Juan DenisandClaude Opus 4.5 cf1aa5e45e feat(19-5): Add edge selection and deletion
- Register ConnectionEdge as custom edge type
- Track selectedEdge state
- onEdgeClick handler
- Delete key/Backspace handler for edge deletion
- Pass onDelete to edge data for delete button
- Store connection metadata (sourceType, targetType)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:18:43 -05:00
Juan DenisandClaude Opus 4.5 7bad6c19e0 feat(19-4): Create custom ConnectionEdge component
- Extends smoothstep edge with labels
- Shows connection type label (Routes to, Uses DB, etc.)
- Color-coded by connection type
- Selected state with glow effect
- Delete button on selection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:17:32 -05:00
Juan DenisandClaude Opus 4.5 992d9cd14c feat(19-2): Wire isValidConnection and add connection feedback
- Import connection validation utility
- Add isValidConnection callback using rules
- Add onConnectStart/onConnectEnd for error tracking
- Show connection error toast when invalid
- Auto-clear error after 3 seconds

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:17:05 -05:00
Juan DenisandClaude Opus 4.5 8a920fdc97 feat(19-1): Create connection validation utility
- Connection rules matrix defining valid source→target combinations
- isValidConnection() checks node types and handle IDs
- getConnectionError() returns human-readable error messages
- connectionLabels and connectionColors for edge styling
- Prevents self-connections and invalid node type combinations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:16:16 -05:00
Juan DenisandClaude Opus 4.5 d3db4258c9 plan(19): Connection Logic execution plan
6 tasks planned:
- Connection validation utility with rules matrix
- isValidConnection callback in WorkflowBuilder
- Visual feedback for connection attempts
- Custom ConnectionEdge component with labels
- Edge selection and deletion
- Connection styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:15:06 -05:00
Juan DenisandClaude Opus 4.5 69b2339e2b feat(18-7): Add configuration panel styles
- Sliding panel from right with open/close animation
- Panel header with type-specific border color
- Panel body with form styling
- Port list styles for Docker config
- btn-icon and btn-danger-ghost for remove buttons
- Fixed @shadow-2xl -> @shadow-lg

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:09:40 -05:00
Juan DenisandClaude Opus 4.5 8b39d87a3f feat(18-6): Wire panel to node selection in WorkflowBuilder
- Import all config panel components
- Track selectedNode state
- onNodeClick opens appropriate panel
- onPaneClick closes panel
- handleNodeDataChange updates node data in real-time
- renderConfigPanel switches by node type

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:08:23 -05:00
Juan DenisandClaude Opus 4.5 37ee145a7b feat(18-5): Create ServiceConfigPanel
- Name input
- Service type selector (Redis, Memcached, RabbitMQ, Queue)
- Auto-update port when type changes
- Status selector
- Description textarea

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:07:41 -05:00
Juan DenisandClaude Opus 4.5 b803a3e638 feat(18-4): Create DomainConfigPanel
- Domain name input with hint
- SSL status selector (none/valid/expired)
- Conditional SSL expiry date picker
- DNS status selector (pending/propagated)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:07:19 -05:00
Juan DenisandClaude Opus 4.5 1a61942b4c feat(18-3): Create DatabaseConfigPanel
- Name input
- Type selector (MySQL, PostgreSQL, MongoDB, Redis)
- Auto-update port when type changes
- Host and port inputs in row layout
- Read-only size display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:06:57 -05:00
Juan DenisandClaude Opus 4.5 4eebd344d5 feat(18-2): Create DockerAppConfigPanel
- Name and image inputs
- Status selector (running/stopped/error)
- Dynamic port mappings list with add/remove
- Memory limit input

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:06:33 -05:00
Juan DenisandClaude Opus 4.5 da6ae4de88 feat(18-1): Create ConfigPanel base component
- Sliding panel with header, body, and optional footer
- Header with icon, title, and close button
- Escape key handler to close panel
- CSS class-based open/closed state for animations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:06:03 -05:00
Juan DenisandClaude Opus 4.5 8d756ec15b plan(18): Node Configuration Panels execution plan
7 tasks planned:
- ConfigPanel base component (sliding side panel)
- DockerAppConfigPanel (name, image, ports, memory)
- DatabaseConfigPanel (name, type, host, port)
- DomainConfigPanel (name, SSL, DNS status)
- ServiceConfigPanel (name, type, port, description)
- Wire panels to node selection in WorkflowBuilder
- Panel styles with slide animation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:01:32 -05:00
Juan DenisandClaude Opus 4.5 2750dc7b85 feat(17-7): Add node-specific styles
- Palette styles with categorized sections
- Type-specific node colors (Docker blue, DB amber, Domain green)
- Node detail styles (image, ports, memory, connection info)
- Port pills with accent styling
- Database type badges
- SSL/DNS status badges for domains
- Animated status dot (pulsing for running/error)
- Database bottom handle positioning

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:58:27 -05:00
Juan DenisandClaude Opus 4.5 57e8a30087 feat(17-5): Register node types and add categorized palette
- Import and register DockerAppNode, DatabaseNode, DomainNode, ServiceNode
- Replace toolbar with NodePalette component
- Categorized sections: Compute, Storage, Network
- Database sub-options: MySQL, PostgreSQL, MongoDB, Redis
- Dynamic MiniMap node coloring by type

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:57:32 -05:00
Juan DenisandClaude Opus 4.5 7909ca6eab feat(17-4): Create ServiceNode component
- Generic service node for future extensibility
- Service type configs for Redis, Memcached, RabbitMQ, Queue
- Configurable icon and color per service type
- Input and output handles for flexible connections

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:56:58 -05:00
Juan DenisandClaude Opus 4.5 2fef686c41 feat(17-3): Create DomainNode component
- Domain node with prominent domain name display
- SSL status badge (valid/expired/none) with icons
- DNS status indicator
- SSL expiry date display
- Output handle only (domains connect TO apps)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:56:38 -05:00
Juan DenisandClaude Opus 4.5 7b21c44b8a feat(17-2): Create DatabaseNode component
- Database node with name and type badge
- Type colors for MySQL, PostgreSQL, MongoDB, Redis
- Connection info (host:port) display
- Size/storage preview
- Input handle only (databases receive connections)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:56:18 -05:00
Juan DenisandClaude Opus 4.5 b9dcbe1551 feat(17-1): Create DockerAppNode component
- Docker app node with name, image, status indicator
- Port mapping pills display
- Memory stat preview
- Multiple handles: input (left), output (right), database (bottom)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:55:59 -05:00
Juan DenisandClaude Opus 4.5 44030cc5ae plan(17): Resource Node Types execution plan
7 tasks planned:
- DockerAppNode with status, ports, memory display
- DatabaseNode with type badges and connection info
- DomainNode with SSL/DNS status
- ServiceNode for future extensibility
- Register nodes in WorkflowBuilder
- Enhanced palette with categories
- Node-specific styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:54:46 -05:00
Juan DenisandClaude Opus 4.5 ed038dff7d feat(16-1): Add node toolbar for adding nodes to canvas
Add floating toolbar with buttons to add:
- Docker App nodes
- Database nodes
- Domain nodes

Implement addNode function that:
- Creates node with unique ID
- Positions node in center of viewport
- Sets appropriate type and label

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:50:43 -05:00
Juan DenisandClaude Opus 4.5 a766976e5a feat(16-1): Add workflow builder styles
Create comprehensive LESS styles for:
- Workflow page layout (full-height canvas)
- Node appearance (header, body, icon, status)
- Connection handles with hover effects
- Toolbar with node type buttons
- React Flow controls and minimap theming
- Animated edge styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:49:38 -05:00
Juan DenisandClaude Opus 4.5 d75b0f7122 feat(16-1): Create BaseNode component with handles
Add custom node component:
- BaseNode with icon, label, status display
- Connection handles (source/target)
- Color-coded by node type (docker, database, domain)
- Register node type in WorkflowBuilder
- Configure animated smoothstep edges

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:48:38 -05:00
Juan DenisandClaude Opus 4.5 68169b01ab feat(16-1): Add canvas controls, background, and minimap
Add React Flow components:
- Background with dots pattern
- Controls for zoom in/out/fit
- MiniMap for canvas overview
- Configure pan/scroll behavior

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:47:52 -05:00
Juan DenisandClaude Opus 4.5 b74374e58f feat(16-1): Add workflow route and sidebar navigation
- Add /workflow route in App.jsx
- Add "Workflow Builder" link in sidebar under Infrastructure
- Use flow/network icon (connected circles)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:47:19 -05:00
Juan DenisandClaude Opus 4.5 f76204031a feat(16-1): Create WorkflowBuilder page with React Flow canvas
Add initial WorkflowBuilder page with:
- ReactFlow provider and canvas setup
- useNodesState and useEdgesState for state management
- onConnect handler for edge creation
- Basic page header and structure

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:46:32 -05:00
Juan DenisandClaude Opus 4.5 ac8a57f5dc feat(16-1): Install React Flow library
Add @xyflow/react package for node-based workflow editor.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:46:10 -05:00
Juan Denis 7642c848be Update asset references in index.html
Changed script and stylesheet links in index.html to point to new asset files, likely after a new build.
2026-01-19 11:30:55 -05:00
Juan DenisandClaude Opus 4.5 8cba0b3f53 fix: Use correct LESS variable @font-mono in linked-apps styles
Fix build error by replacing @font-family-mono with @font-mono to
match the variable defined in _variables.less.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:29:36 -05:00
Juan DenisandClaude Opus 4.5 99bc8596a1 Add environment settings to Settings tab
Add environment configuration section in SettingsTab component with:
- Current environment type display and dropdown for standalone apps
- Disabled state with badge for linked apps (environment locked)
- Warning section for linked apps with unlink button
- Settings row styling for consistent layout

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:50:44 -05:00
Juan Denis 9dbcfeab5d feat(13): Integrate LinkedAppsSection and LinkAppModal into ApplicationDetail 2026-01-19 10:48:06 -05:00
Juan Denis d61628e85e feat(13): Create LinkAppModal component for linking apps 2026-01-19 10:46:41 -05:00
Juan Denis 92df579228 feat(13): Create LinkedAppsSection component for showing linked apps 2026-01-19 10:45:28 -05:00
Juan Denis 60ba8967b8 feat(13): Add environment filter dropdown to apps toolbar 2026-01-19 10:43:57 -05:00
Juan Denis f2fc1c4ab6 feat(13): Add environment badges to app list (PROD/DEV/STAGING) 2026-01-19 10:42:53 -05:00
Juan Denis 46f6f3a869 feat(12): Add frontend API methods for app linking 2026-01-19 10:31:51 -05:00
Juan Denis 8d19e3f241 feat(11): Add testDatabaseConnection API method for external DB validation 2026-01-19 10:23:18 -05:00