Commit Graph
231 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
github-actions[bot] 9bb434c6af chore: bump version to 1.2.22 [skip ci] 2026-01-19 18:22:33 +00: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
github-actions[bot] 650ade1aed chore: bump version to 1.2.21 [skip ci] 2026-01-19 17:42:55 +00:00
Juan Denis 384d23a999 Merge branch 'main' of https://github.com/jhd3197/ServerKit 2026-01-19 12:42:44 -05:00
Juan Denis c156c04fcc docs(21): Complete workflow deployment phase 2026-01-19 12:42:19 -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 83ba62bb08 feat(21-2): Add workflow deploy API endpoint 2026-01-19 12:38:12 -05:00
Juan Denis bead238379 feat(21-1): Create workflow deployment service 2026-01-19 12:37:48 -05:00
Juan Denis 20531a35c1 plan(21): Create deployment from workflow plan 2026-01-19 12:35:44 -05:00
Juan Denis 5b50bf7822 docs: Update STATE.md - Phase 20 completed 2026-01-19 12:29:47 -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 Denis 9c4c5dd886 feat(20-3): Register workflow blueprint 2026-01-19 12:26:26 -05:00
Juan DenisandClaude Opus 4.5 5f48bb1a37 feat(20-2): Create workflow API endpoints
- GET /workflows - List all workflows for user
- GET /workflows/<id> - Get single workflow
- POST /workflows - Create new workflow
- PUT /workflows/<id> - Update workflow
- DELETE /workflows/<id> - Delete workflow
- JWT authentication and access control

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:25:21 -05:00
Juan DenisandClaude Opus 4.5 ee9826ff1f feat(20-1): Create Workflow model
- SQLAlchemy model with name, description, nodes, edges, viewport
- JSON string storage for React Flow state
- to_dict() method with node/edge counts
- User relationship and timestamps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:24:51 -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 c5368b2ea5 docs(19): Complete Connection Logic phase
Phase 19 completed with 5 commits:
- Connection validation utility with rules matrix
- isValidConnection wiring with error feedback
- Custom ConnectionEdge with labels
- Edge selection and deletion
- Connection styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:20:54 -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 c3b7292037 docs(18): Complete Node Configuration Panels phase
Phase 18 completed with 7 commits:
- ConfigPanel base component
- DockerApp, Database, Domain, Service config panels
- Panel wiring with real-time node updates
- Panel styles with slide animation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:10:59 -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 4829d72f8b docs(17): Complete Resource Node Types phase
Phase 17 completed with 6 commits:
- DockerAppNode, DatabaseNode, DomainNode, ServiceNode
- Categorized palette (Compute/Storage/Network)
- Node-specific styles with animations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:59:38 -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 87771103e5 docs(16-1): Complete Workflow Canvas Foundation plan
Add SUMMARY.md documenting phase completion:
- 7 tasks executed across 7 commits
- React Flow integration with canvas, controls, minimap
- BaseNode component and workflow styles
- Node toolbar for adding nodes

Update STATE.md and ROADMAP.md to mark Phase 16 complete.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:52:05 -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