Skip to content

Merge Dev into Main - #99

Merged
strick-j merged 30 commits into
mainfrom
develop
Feb 10, 2026
Merged

Merge Dev into Main#99
strick-j merged 30 commits into
mainfrom
develop

Conversation

@strick-j

Copy link
Copy Markdown
Owner

Primarily UI updates.

claude and others added 30 commits February 9, 2026 23:45
- README.md: Add ECS support, auth system, user/settings management,
  new API endpoints, updated project structure, new CI/CD workflows
  (frontend-tests, ecs-build), IAM module, and Makefile targets
- CLAUDE.md: Add ECS collector/routes, auth/users/settings routes and
  services, auth context/patterns, topology filtering, settings UI
  components, updated directory structure and quick reference
- infrastructure/README.md: Add IAM module to module table with
  description of its role and policies
- infrastructure/modules/iam/README.md: New README documenting the
  standalone IAM module resources, variables, and outputs

https://claude.ai/code/session_01GSu1MTW8XvAbfNK28ug1kU
Implements full ECS container visualization with a new "managed by" concept
that supports multiple management sources (Terraform, GitHub Actions, unmanaged).

Backend changes:
- Add ManagedBy enum and managed_by field to ECS schemas and database model
- Add image_tag field to ECSContainer for CI/CD deployment detection
- Add management source detection in ECS collector using image tag patterns
  (git SHA, semver) and resource tags (deployed-by, managed-by)
- Add /ecs/summary API endpoint for dashboard counts
- Update topology endpoint to include all ECS containers (not just TF-managed)
  with managed_by field
- Update resource sync to persist managed_by and image_tag fields
- Add ECS read permissions to IAM task role policy

Frontend changes:
- Create ManagedByBadge component with Terraform/GitHub Actions/Unmanaged states
- Add ManagedBy type and ECSSummaryResponse to TypeScript types
- Update ECS list page and detail panels to use ManagedByBadge
- Add ECS Containers entry to sidebar navigation
- Add /ecs route to App.tsx router
- Add ECS summary card to dashboard with cluster/task counts
- Update topology ECS node to show TF/GHA badge based on managed_by
- Add useECSSummary hook and getECSSummary API function

https://claude.ai/code/session_016ZmpvrW3h5SFZ3LGyRPXCr
- Add ECSListPage mock to App.test.tsx vi.mock("@/pages")
- Add useECSSummary mock to Dashboard.test.tsx vi.mock("@/hooks")
- Fix Prettier formatting in ManagedByBadge.tsx

https://claude.ai/code/session_016ZmpvrW3h5SFZ3LGyRPXCr
Add ECS management source detection and improve container tracking
- Add "ECS Containers" text assertion to Sidebar.test.tsx navigation check
- Add ECS Containers href assertion to Sidebar.test.tsx link check
- Add "ECS Containers" text assertion to App.test.tsx sidebar check

https://claude.ai/code/session_016ZmpvrW3h5SFZ3LGyRPXCr
Add ECS Containers assertions to sidebar and app tests
The Terraform state parser and sync logic had no support for ECS resources,
so containers in Terraform-managed clusters were never marked as managed.

- Add aws_ecs_cluster, aws_ecs_service, aws_ecs_task_definition to
  TerraformStateParser.SUPPORTED_RESOURCE_TYPES
- Add cluster name, service name, task family to ID extraction mappings
- Add ecs_cluster, ecs_service, ecs_task_definition keys to aggregator
- Add ECS section to _sync_terraform_state that marks all containers in
  a Terraform-managed cluster with tf_managed=True and managed_by="terraform"
  (containers detected as CI/CD-deployed keep managed_by="github_actions")

https://claude.ai/code/session_016ZmpvrW3h5SFZ3LGyRPXCr
Fix ECS containers showing as unmanaged by adding Terraform state sync
Replace the conditional custom ECS card with a ResourceSummaryCard that
always renders (matching EC2/RDS pattern), add a "Recent ECS Containers"
section to the recent resources grid, and update the grid layout to
accommodate 4 resource types.

https://claude.ai/code/session_016ZmpvrW3h5SFZ3LGyRPXCr
Add ECS overview to dashboard with summary card and recent containers
Increase row gap (25→70px) and vertical spacing (20→30px) to give edges
room between subnet rows, add pathOptions.offset to smoothstep edges so
step-paths clear parent containers, and lower edge z-index (10→0) so
edges render behind subnet/resource nodes.

https://claude.ai/code/session_01BrehwLocNceLbt4vFRUuCc
Improve topology diagram spacing and edge rendering
Version updates:
- VERSION: 1.3.0 -> 1.4.0
- frontend/package.json: 1.2.2 -> 1.4.0 (sync with project version)
- frontend/package-lock.json: updated accordingly

Documentation updates:
- README.md: Add missing env vars (LOCAL_AUTH_ENABLED, ADMIN_USERNAME,
  ADMIN_PASSWORD, FRONTEND_URL, token expiration settings)
- CLAUDE.md: Add same env vars, update VERSION example to 1.4.0
- infrastructure/README.md: Add secrets module description documenting
  Secrets Manager integration for session, OIDC, and admin password
  persistence; add app_task_role_arn to outputs table

https://claude.ai/code/session_01GSu1MTW8XvAbfNK28ug1kU
Add ECS support, authentication, user management, and admin settings
Separate IGW-to-subnet spacing from resource grid spacing by adding a
dedicated igwToSubnetGap (50px) so smoothstep edges with offset=20 have
enough room (≥40px) to route without zigzagging through subnet headers.
Revert spacing.vertical to 20px (resource grid) and reduce rowGap from
70 to 50px for better proportions.

https://claude.ai/code/session_01BrehwLocNceLbt4vFRUuCc
Fix IGW-to-subnet edge overlap and reduce excessive row gap
Split 5 summary cards from a single 4-column grid (which orphaned
the Terraform card on its own row) into two semantic rows:
- Row 1 (3-col): Compute resources (EC2, RDS, ECS)
- Row 2 (2-col): Infrastructure & management (VPC Networking, Terraform)

https://claude.ai/code/session_016ZmpvrW3h5SFZ3LGyRPXCr
Increase smoothstep borderRadius from 5 to 20px for rounder, more
natural-looking edge turns. Raise edge zIndex from 0 to 3 so edges
render above subnet containers instead of being partially hidden behind
container borders.

https://claude.ai/code/session_01BrehwLocNceLbt4vFRUuCc
Restructure dashboard layout: semantic 3+2 card grouping
Smooth edge corners and raise edges above containers
Set borderRadius to 100px on smoothstep edges so corners become large
arcs instead of near-right-angle turns. React Flow clamps the radius to
half the shortest adjacent segment, so this effectively maximizes
rounding on every corner for the most natural-looking paths.

https://claude.ai/code/session_01BrehwLocNceLbt4vFRUuCc
Increase edge borderRadius to 100 for flowing curves
- Add ECSReadAccess policy (ListClusters, ListTasks, DescribeTasks,
  DescribeClusters) to IAM module main.tf to match the ECS collector
- Add ECS permissions statement to IAM JSON examples in README.md
  and CLAUDE.md
- Fix architecture diagram in both README.md and CLAUDE.md: remove
  dangling vertical line on the right side, connect Parsers box
  directly to Terraform State, add ECS to AWS APIs label
- Update diagram frontend section to show ECSList, Settings, Login
  pages and settings/ component directory
- Update infrastructure/README.md and IAM module README with ECS
  read-only policy description

https://claude.ai/code/session_01GSu1MTW8XvAbfNK28ug1kU
All box-drawing lines in both diagrams now have consistent 71-char
display width, fixing the right-side border misalignment.

https://claude.ai/code/session_01GSu1MTW8XvAbfNK28ug1kU
The develop branch added additional ECS permissions (DescribeServices,
ListServices, DescribeTaskDefinition, DescribeContainerInstances).
Updated all documentation to reflect the full 8-action ECS policy.

https://claude.ai/code/session_01GSu1MTW8XvAbfNK28ug1kU
Add ECS IAM permissions and fix architecture diagram
The ARG declarations for APP_VERSION, BUILD_SHA, and BUILD_DATE were
only in the builder stage. In multi-stage Docker builds, ARGs don't
persist across FROM boundaries, so the LABEL instruction in the
nginx stage was referencing undefined variables. Re-declare the ARGs
in the production stage.

https://claude.ai/code/session_018ncFGFZ9AkumwKBMU6nDYL
Replace smoothstep edge type with default (bezier) for smooth S-curves
instead of orthogonal step-paths with corners. This matches the desired
flowing edge style. Lower edge zIndex to 0 (below subnets at 1) so
edges are hidden where they cross container borders but visible in the
gaps between rows. Remove smoothstep-specific pathOptions (offset,
borderRadius) as bezier uses curvature-based routing instead.

https://claude.ai/code/session_01BrehwLocNceLbt4vFRUuCc
…ion-1YZch

Fix undefined variable warnings in frontend Dockerfile LABEL
Switch edges from smoothstep to bezier for smooth flowing curves
@strick-j
strick-j merged commit a862431 into main Feb 10, 2026
39 checks passed
@github-actions

Copy link
Copy Markdown

🐳 Docker Build Results

Image Status Tag
Backend ✅ success pr-99
Frontend ✅ success pr-99

Note: Images are pushed to the dev ECR on merge to develop and to the prod ECR on merge to main.
To push from this PR, use the workflow dispatch with push_to_ecr: true.

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.

2 participants