Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
Manage Staging Release Validation
Initializing search
    bf-dev
    • Home
    • Process
    • Products
    • Reference
    • Decisions
    • Work
    • Operations
    bf-dev
    • Home
      • Process Handbook
      • BetterFleet Workflow Map
      • Product Development System
      • Product Engineering Workflow
        • Process Workflows
        • Work Intake and Weekly Planning
        • Product Engineering Workflow in Linear
        • Product Engineering Delivery
        • Agent Guidance
        • Workflow
        • Skills
        • Skill Sources
        • Process Guides
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
        • Process Templates
        • Release Plan: <title>
      • Process Publishing
      • Product overview
        • General Reference
          • Core Domain Training
          • System Topology
          • Two-Axis Ontology Model
          • Ontology Primer
          • Worked Example
          • Evidence, Ownership, and Lineage
          • Energy Management
          • Standards and Protocol Map
          • Charging, Roaming, and Commercial Model
          • Charge Planning and Operations
          • Cross-Cutting Domains
          • Domain Coverage Matrix
        • BetterFleet Product Ontology
        • Core Operations Data Ontology
        • BetterFleet R&D Plan
        • Index
        • Architecture
        • Manage Product Capabilities
        • Manage Data and State
        • Manage Service Interaction Flows
        • Manage Reference
        • Manage Internal Application Diagrams
          • Manage Authorization And Permissions
          • bf-manage-core Auth and Authorization Model
          • Manage Authorization and Permissions
          • bf-manage-web Auth and Permission Model
          • Manage Service Catalog
          • bf-depot-sim
          • bf-digital-twin (Manage Role)
          • bf-fleet-health
          • bf-manage-connect
          • bf-manage-core
          • bf-manage-incidents
          • bf-manage-roaming
          • bf-manage-sitepwrmon
          • bf-manage-web
          • bf-schedule-creator (Manage Role)
          • bf-support-microsite
          • bf-telematics
        • Index
        • Architecture
        • Plan Reference
        • Plan Internal Application Diagrams
        • Plan Migration and Flags
        • Plan Simulation Request Lifecycle
          • Plan Service Catalog
          • bf-bnl-schedule-analysis-compute
          • bf-bnl-settings
          • bf-bnl-ui
          • bf-digital-twin (Plan Role)
          • bf-route-modelling
          • bf-schedule-creator (Plan Role)
      • Where to Ask Product Questions
      • Reference
        • Platform Reference
        • Platform Architecture
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repository Map
        • Monolithic Git Transition FAQ
        • Monolithic Git Sizing
        • CI and Release Integration
        • Shared Reference
        • Shared Infrastructure Architecture
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • System Reference
        • Cloud Data Dependencies
        • Ports and URLs
        • Service Matrix
          • API Docs
          • OCPI API Docs
          • OCPP API Docs
          • OSCP API Docs
          • VDV API Docs
          • Yard State API Docs
        • System Design
        • System Design: BBA Microgrid Controller Generic Packet Translation
        • System Design: Depot Simulation
        • System Design: IoT Sensor Packet
        • System Design: Microgrid Energy Orchestration
          • System Design: OCPP Profile 3 And ISO 15118 PKI
          • Architecture: BetterFleet OCPP Profile 3 and ISO 15118 PKI
          • Specification: BetterFleet OCPP Profile 3 and ISO 15118 Certificate Lifecycle Management
          • System Design: On-Prem Control
          • Challenge
          • Specification: BetterFleet On-Prem Continuity Control
          • System Design: OSCP
          • OSCP Protocol Documentation
          • Depot Sim Testing Requirements
          • System Design: OSCP Flexibility Provider Domain
      • Decisions
        • Architecture Decision Records
        • 0001 - Record architecture decisions
        • 0002 - Cognito for Authentication and Authorisation
        • 0003 - AWS Amplify for Authentication
        • 0004 - DynamoDB for default database
        • 0005 - Data Persistence
        • 0006 - Trunk-Based Development
        • 0007 - Generalised principle for automation
        • 0008 - Naming Repositories, Services, and URLs
        • 0009 - Use Timezone Aware DateTimes and UTC
        • 0010 - Use semantic release
        • 0011 - Centralized feature flag repository
        • 0012 - Use Named Exports in Storybook
        • 0013 - RESTful TITLE GraphQL
        • 0014 - Service Granularity
        • 0015 - Async/co-routine exception handling pattern
        • 0016 - Logging & log levels
        • 0017 - Instantiated Models
        • 0018 - Repository Pattern for Database Access
        • 0019 - Use of Design Tokens in TypeScript React Application
        • 0020 - API backwards compatibility and versioning
        • 0021 - Alembic Migration strategy
        • 0022 - Consistent react-hook-form usage
        • 0023 - Domain Event-Driven Architecture
        • 0024 - Domain Event Bus Tech Stack
        • 0025 - No enum types in DB table columns
        • 0026 - In-Memory Ormar Stores for Repository testing
        • 0027 - Storing Tab State in Query and Local Storage
        • 0028 - Adopt OpenTelemetry Semantic Conventions for Structured Logging
        • 0029 - Adopt RFC 9457 for HTTP Error Responses
        • 0030 - Use GitLab registry and Terraform state for ECS services
        • 0031 - Adopt DDD, Hexagonal Architecture, and CQRS for Python Domain Services
      • Work
        • Active Work
          • Work: Bba Microgrid Controller
          • Implementation Specification: BBA Microgrid Controller
          • BBA Microgrid Controller Deliverables (Stories)
          • Work: BFDev Monolithic Git
          • Challenge
          • Specification: BFDev Monolithic Git v2
          • BFDev Monolithic Git v2 Stories
          • Work: Complex Circuit Load Balancing
          • Implementation Specification: Complex Circuit Load Balancing
          • Complex Circuit Load Balancing Deliverables (Stories)
            • COR-10 and COR-11 Consolidation Review
          • Work: Dispatch Reliability and Reconciliation
          • Challenge
          • Specification: Dispatch Reliability and Reconciliation
          • Dispatch Reliability and Reconciliation (Unit User Stories)
            • Dispatch populated vehicle cards grey surface snapshot
            • Dispatch Visual Review
          • Work: Enable Scheduled Managed Charger Access
          • Challenge: Enable Scheduled Managed Charger Access
          • Specification Exploration Dossier: Enable Scheduled Managed Charger Access
          • Specification Review: Enable Scheduled Managed Charger Access
          • Specification: Enable Scheduled Managed Charger Access
          • Work: Guided Cut-Off and Release Orchestration
          • Specification: Guided Cut-Off and Release Orchestration
          • Guided Cut-Off and Release Orchestration (Unit User Stories)
          • Work: Production Deployment Validation
          • Challenge
          • Work: Scheduled Report Parity
          • Specification: Scheduled Report Parity
          • Work: Telematics
          • Telematics EventBridge Path
          • Telematics Ingress Architecture
          • Specification: Telematics Migration into bf-manage-core with 5-Minute Freshness and Health Visibility
          • Telematics Core Migration MVP (Implementation-Time BDD)
          • Work: Vector Derms
          • Implementation Specification: Vector DERMS
          • Vector DERMS Deliverables (Stories)
          • Work: Visiting Vehicle Charging Visibility
          • Specification: Visiting Vehicle Charging Visibility
          • Visiting Vehicle Charging Visibility (Unit User Stories)
          • Work: Workspace Owned Stripe Roaming
          • Specification: Workspace-Owned Stripe Credentials for Roaming Payments
        • Backlog Work
          • Work: Microgrid
          • Microgrid Backlog Stories
          • Work: Mobile Ops Companion
          • Challenge
          • Specification: Mobile Operations Companion v1
          • Mobile Operations Companion Deliverables (Stories)
          • Work: Oscp
          • OSCP Backlog Stories
        • Archived Work
          • Work: Code Canonical Orchestration
          • Challenge
          • Specification: Product Engineering Workflow
          • Product Engineering Workflow Deliverables (Unit User Stories)
          • Work: Release Notes Automation
          • Release Plan: Release Notes Automation
          • Release Notes Automation Backlog Stories
      • Operations
      • Onboarding Runbook
        • Operations Runbooks
        • Production Hotfix Release
        • Staging Hotfix Release
        • Manage Staging Release Validation
          • When To Run
          • Record The Validation
          • Gate 1: MR Staging Validation
          • Gate 2: Deployment Identity
          • Gate 3: Core Manage Smoke
          • Gate 4: Release-Specific Add-Ons
          • Gate 5: Monitoring
          • Outcome
          • Linear Issue Template
        • Terraform Plan Dry Runs
        • Operations Tooling
        • Code Indexing
        • Operations Evidence
        • Database Restoration Test Report
      • Daily Operations Runbook
      • Testing Guide
      • Troubleshooting
    • When To Run
    • Record The Validation
    • Gate 1: MR Staging Validation
    • Gate 2: Deployment Identity
    • Gate 3: Core Manage Smoke
    • Gate 4: Release-Specific Add-Ons
    • Gate 5: Monitoring
    • Outcome
    • Linear Issue Template
    1. Home
    2. Operations
    3. Runbooks
    Operations general

    Manage Staging Release Validation¶

    Use this runbook after the BetterFleet Manage release branch has been deployed to staging and before the production promotion decision.

    The goal is to prove two things:

    • every shipped merge request has been validated in staging through the normal MR label process
    • the staged release candidate is operational as a whole

    This is not a full regression pass. Feature-specific acceptance checks remain owned by the merge requests that introduced those changes.

    When To Run¶

    Run this between the staging deployment and the production release decision for each weekly Manage release candidate.

    Run it again if a material hotfix or release-branch change is deployed into staging after the first validation pass.

    Record The Validation¶

    Create one Linear execution-only issue for the release, using Kind: validation. The issue is the per-release execution record. Copy the checklist from Linear Issue Template into the issue body so the release keeps an exact record of what was checked that week.

    GitLab remains the source for merge request labels, pipelines, deployments, and environment evidence. Linear records the operator-facing checklist, owner, notes, exceptions, and final staging outcome.

    Suggested title:

    Validate Manage staging release 2026.xx
    

    Gate 1: MR Staging Validation¶

    Open the staging validation query and confirm there are no unresolved merge requests missing the Validated in Staging label:

    Merged staging MRs missing Validated in Staging

    If the query is not empty, do not treat staging as release-ready until each remaining merge request is either:

    • validated and labelled
    • explicitly excluded from the release decision with a short reason
    • blocked and tracked as a release blocker

    Gate 2: Deployment Identity¶

    Confirm staging is running the intended release candidate:

    • the staging deploy pipeline passed
    • the relevant downstream deployment jobs completed successfully
    • manage-staging.betterfleet.com loads
    • the deployed build, commit, or release branch matches the intended release
    • backend/API health checks pass
    • database migrations completed successfully, if applicable

    Gate 3: Core Manage Smoke¶

    Run the smoke checks against a dedicated smoke-test workspace and depot. Do not use customer data, and do not use workspaces reserved for depot simulation unless the release owner has explicitly approved it.

    These checks prove the critical operational capabilities, not just whether pages render. A check only passes when the page loads, the data is meaningful for the selected staging depot, and there is no visible application error, empty state that should not be empty, undefined value, stale timestamp, or obviously incorrect unit.

    Minimum checks:

    • login succeeds for a normal admin user
    • region, workspace, and depot selection work
    • Overview loads real operational data for the selected depot
    • Incidents list and incident detail load, with status and timestamp fields populated where incidents exist
    • Chargers list and charger detail load, with each sampled charger showing a coherent operational state, connectors, last-known communication/status data, and no unexpected undefined, blank, or impossible values
    • Vehicles list and vehicle detail load
    • Load management is meaningful:
    • the Load or Power page loads for the selected depot
    • charts render with labelled axes, values, and a sensible time range
    • site/depot load, capacity, allocation, or limit values are present where the selected depot is configured for load management
    • charger allocation or constraint values are internally consistent, with no negative, over-capacity, missing, or obviously stale values unless recorded as expected for the staging dataset
    • any active limit, circuit, or fail-safe state visible in the UI matches the expected staging scenario or is explicitly recorded as not applicable
    • Settings loads
    • one safe smoke-only setting can be changed and reverted, if a safe setting is available
    • one representative report loads
    • one representative report export or download works
    • release notes or help page loads
    • logout works

    If a smoke check is not applicable for the staging dataset, mark it as not applicable in the Linear issue and explain why.

    Gate 4: Release-Specific Add-Ons¶

    Only run deeper checks for areas touched by the release candidate. Use the MR list, release notes, feature flags, and known release risk to decide which add-ons apply.

    Common add-ons:

    • Auth or SSO changes: validate the affected login path, region selection, and error state.
    • Permission changes: validate the affected role or access boundary with the relevant user type.
    • Feature flag changes: confirm the intended GitLab feature-flag stage and audience.
    • Load management changes: run the core load-management smoke plus one focused check for the changed circuit, charger, fail-safe, limit, or allocation behavior.
    • Roaming changes: validate the affected access, group, tariff, or session path.
    • Reports changes: validate the affected report table and export.
    • Migration or data-shape changes: confirm the migration completed and existing staging data still renders in the affected surface.

    Record each add-on as completed, not required, or blocked in the Linear issue.

    Gate 5: Monitoring¶

    After the smoke pass, check for obvious staging health regressions:

    • no obvious new Sentry spike for the staging environment
    • no obvious backend error/log spike
    • no repeated frontend runtime error on core pages
    • any known warnings are recorded and accepted

    If monitoring is noisy, record the specific signal checked and the reason it was accepted or escalated.

    Outcome¶

    Staging is ready for production promotion only when:

    • the MR staging validation query is empty or fully triaged
    • deployment identity is confirmed
    • core Manage smoke passes
    • required release-specific add-ons pass
    • monitoring shows no obvious new release-blocking issue
    • failures, exceptions, and accepted gaps are recorded in the Linear issue

    If any gate fails, do not proceed to production promotion. Record the blocker in the Linear issue and link the relevant GitLab merge request, pipeline, incident, or follow-up issue.

    Linear Issue Template¶

    Copy this template into the per-release Linear validation issue.

    ## Staging Release Validation
    
    Release: 2026.xx
    Environment: https://manage-staging.betterfleet.com
    Release owner:
    Validation date:
    Runbook: docs/operations/runbooks/manage-staging-release-validation.md
    
    ## Gate 1: MR Staging Validation
    
    - [ ] GitLab query has no unresolved MRs missing `Validated in Staging`
    - [ ] Any remaining MRs are explicitly excluded, blocked, or labelled with a note
    
    ## Gate 2: Deployment Identity
    
    - [ ] Staging deploy pipeline passed
    - [ ] Relevant downstream deployment jobs completed successfully
    - [ ] `manage-staging.betterfleet.com` loads
    - [ ] Staging is running the intended release branch/build
    - [ ] Backend/API health checks pass
    - [ ] Database migrations completed successfully, if applicable
    
    ## Gate 3: Core Manage Smoke
    
    - [ ] Login succeeds for a normal admin user
    - [ ] Region/workspace/depot selection works
    - [ ] Overview loads real operational data for the selected depot
    - [ ] Incidents list and incident detail load, with status/timestamp fields populated where incidents exist
    - [ ] Chargers list and charger detail load, with sampled chargers showing coherent operational state, connector data, and last-known communication/status data
    - [ ] Sampled charger values contain no unexpected `undefined`, blank, stale, or impossible operational values
    - [ ] Vehicles list and vehicle detail load
    - [ ] Load/Power page loads for the selected depot
    - [ ] Load/Power charts render with labelled axes, values, and a sensible time range
    - [ ] Site/depot load, capacity, allocation, or limit values are present where the depot is configured for load management
    - [ ] Charger allocation or constraint values are internally consistent, with no negative, over-capacity, missing, or obviously stale values unless recorded as expected
    - [ ] Active limit, circuit, or fail-safe state visible in the UI matches the expected staging scenario or is explicitly recorded as not applicable
    - [ ] Settings page loads
    - [ ] One safe smoke-only setting can be changed and reverted, or marked not applicable
    - [ ] One representative report loads
    - [ ] One representative report export/download works
    - [ ] Release notes/help page loads
    - [ ] Logout works
    
    ## Gate 4: Release-Specific Add-Ons
    
    - [ ] Auth/SSO checks completed or not required
    - [ ] Permission/role checks completed or not required
    - [ ] Feature flag rollout checks completed or not required
    - [ ] Load management checks completed or not required
    - [ ] Roaming checks completed or not required
    - [ ] Reports/export checks completed or not required
    - [ ] Migration/data checks completed or not required
    
    ## Gate 5: Monitoring
    
    - [ ] No obvious new staging Sentry spike
    - [ ] No obvious backend error/log spike
    - [ ] No repeated frontend runtime error on core pages
    - [ ] Known warnings are recorded and accepted
    
    ## Outcome
    
    - [ ] Staging release candidate is ready for production promotion
    - [ ] Blocked: issue(s) recorded below
    
    Validated by:
    Date/time:
    Workspace/depot used:
    Pipeline/deployment links:
    Notes:
    
    Made with Material for MkDocs
    BFDev Docs Assistant
    New conversation?
    Ask one focused question at a time, this helps the assistant provide accurate answers about what's been implemented in BetterFleet.