lantern

wanderland-deployment-2025-12-22

Wanderland Deployment 2025-12-22

Date: December 22, 2025
Environment: devl β†’ preprod β†’ prod
Status: Complete βœ…

Overview

Major fence API release enabling external developer platform integration. This deployment brings the unified addressing system, path-based fence execution, and middleware improvements we've been testing with the goose workflows.

Components:

Service Image Port
Stuffy (Nightingale) devops/stuffy 8080
Oculus API devops/oculus-api 7778

URLs (devl):


Changes in This Release

🎯 Fence API (External Integration Ready)

The big headline - fence execution via clean REST API:

  • Path-based virtual fence execute: POST /api/oculus/virtual-fences/{slug}/execute- Supports path addressing: Section-Name.todo, my-section.table
  • Ready to wire up to existing developer platforms

πŸ”§ Oculus API Core

Change Description
Unified Addressing poke('slug:path', value) and peek('slug:path')
Path Parser Fix Peek now routes through proper grammar (fixes goose-pong)
Middleware Split TableExtractor β†’ JMESTransform + MarkdownFormatter
Provider Fix can_execute() accepts both parsed name and full fence string
Middleware Pipeline Fence execution now applies middleware properly

πŸͺΏ Goose-Tested Features

Features validated through goose exploration workflows:

  • Floating labels for virtual fences (<!-- [label-name] -->)
  • Hierarchical peek with slugified path segments
  • Fuzzy fence matching with patterns (^prefix, suffix$, node.fence)
  • Table virtual fence CRUD operations

πŸ“ Other Improvements

  • AST converter handles html_block and html_inline tokens
  • CLI peek defaults to sprout level (parsed data, not executed)
  • Strip updated_tokens from virtual fence action responses

Commit Summary

Wanderland (oculus-api)

Hash Description
9a3715b feat(api): Add path-based virtual fence execute endpoint
dc4c6ea fix(oculus): Route peek through path_parser (goose-pong fix)
d2b9c3c feat(middleware): Split TableExtractor into JMESTransform + MarkdownFormatter
3e27b0b feat(oculus): Unified addressing, hierarchical peek, CLI enhancements
e10f787 fix(providers): Accept both parsed provider name and full fence string
2e3f9c0 fix(compose): Apply middleware pipeline to fence execution

Nightingale (stuffy)

Hash Description
8161fcc Merge remote-tracking branch 'upstream/main'

Pre-Flight Checklist

  • Wanderland repo committed and pushed to GitLab
  • Nightingale repo merged from upstream and pushed to GitHub
  • Jenkins build triggered
  • Images built and pushed to ECR
  • Services deployed
  • Health checks passing
  • Fence API verified
  • Redeploy with fence route ordering fix (af2de77)

Deployment Stages

Stage 1: Image Build

Status: Pending ⏳

Pipeline: pqis-devops-wanderland-devl-main-pipeline
Build: TBD
  • Stuffy Docker image built (ARM64)
  • Oculus API Docker image built (ARM64)
  • Images pushed to ECR

Stage 2: Service Deployment

Status: Pending ⏳

  • Stuffy ECS task updated
  • Stuffy ECS service deployed
  • Oculus API ECS task updated
  • Oculus API ECS service deployed

Stage 3: Validation

Status: Pending ⏳

  • Stuffy health check passing (/api/health)
  • Oculus API health check passing (/health)
  • Target groups healthy
  • Fence execute endpoint verified
  • Goose workflow tested

Execution Log

2025-12-22 13:35 UTC

  • Jenkins build #75 completed (deployment succeeded, VerifyDns failed - known issue)
  • Images pushed: devops/oculus-api:2025.12.59
  • ECS services deployed and healthy
  • Health checks: Stuffy 200, Lantern 200
  • Fence API endpoints verified in OpenAPI spec
  • Awaiting nodes deployment to sync announcement to ECS

2025-12-22 ~current

  • Reviewing commits since last deployment
  • Creating deployment tracking node
  • Preparing changelog for announcement

Verification Commands

# Check ECS service status
aws ecs describe-services --cluster devops-utilities-arm64 \
  --services wanderland-stuffy-devl wanderland-oculus-api-devl

# Test fence execute endpoint
curl -X POST https://lantern.dev.int.proquest.com/api/oculus/virtual-fences/my-node/execute \
  -H "Content-Type: application/json" \
  -d '{"path": "Tasks.todo", "action": "add", "params": {"content": "Test task"}}'

# Force new deployment if needed
aws ecs update-service --cluster devops-utilities-arm64 \
  --service wanderland-stuffy-devl --force-new-deployment

Related

  • Platform Architecture: [[wanderland-ecs-deployment]]
  • Previous Deployment: [[wanderland-deployment-2025-12-17]]
  • Pipeline Config: devops-nightinggale/jenkins/deploy.yml

Tags

tags:
  - deployment
  - wanderland
  - ecs
  - devl
  - 2025-12
  - fence-api

North

slots:
- context:
  - Linking deployment to parent ECS deployment architecture node
  slug: wanderland-ecs-deployment

West

slots:
- context:
  - Linking to previous deployment chronologically
  slug: wanderland-deployment-2025-12-17

South

slots:
- context:
  - Linking announcement to deployment tracking node
  slug: wanderland-wonders-2025-12-22
↑ northwanderland-ecs-deployment
↓ southwanderland-wonders-2025-12-22