Skip to content

security: enforce TLS certificate verification - #1563

Open
Alexandre Gattiker (algattik) wants to merge 4 commits into
mainfrom
algattik-issue-1562-enforce-tls-verification
Open

Alexandre Gattiker (algattik) wants to merge 4 commits into
mainfrom
algattik-issue-1562-enforce-tls-verification

Conversation

@algattik

@algattik Alexandre Gattiker (algattik) commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Description

Enforce TLS certificate and hostname verification for production OSMO, Redis, and Data Viewer connections. Remove the redundant privileged OSMO role mutation that bypassed certificate validation and add fail-closed regression coverage.

Closes #1562

Type of Change

  • 🐛 Bug fix (non-breaking change fixing an issue)
  • ✨ New feature (non-breaking change adding functionality)
  • 💥 Breaking change (fix or feature causing existing functionality to change)
  • 📚 Documentation update
  • 🏗️ Infrastructure change (Terraform/IaC)
  • ♻️ Refactoring (no functional changes)

Component(s) Affected

  • infrastructure/terraform/prerequisites/ - Azure subscription setup
  • infrastructure/terraform/ - Terraform infrastructure
  • infrastructure/setup/ - OSMO control plane / Helm
  • workflows/ - Training and evaluation workflows
  • training/ - Training pipelines and scripts
  • docs/ - Documentation

Data Viewer NGINX and security regression tests are also affected.

Testing Performed

  • Terraform plan reviewed (no unexpected changes)
  • Terraform apply tested in dev environment
  • Training scripts tested locally with Isaac Sim
  • OSMO workflow submitted successfully
  • Smoke tests passed (smoke_test_azure.py)

Production-client TLS tests passed (5/5), including rendered NGINX and Redis certificate and hostname rejection. PSScriptAnalyzer, ShellCheck, Markdown lint, and spell checks passed.

All five OSMO E2E tests passed on test deployed instance: RL lifecycle, RL dataset training, IL lifecycle, VLA fine-tuning, and Azure ML replay.

Documentation Impact

  • No documentation changes needed
  • Documentation updated in this PR
  • Documentation issue filed

Bug Fix Checklist

  • Linked to issue being fixed
  • Regression test included, OR
  • Justification for no regression test:

Checklist

- remove unverified privileged OSMO request
- enforce Redis and NGINX certificate validation
- add fail-closed TLS regression coverage

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1ac45846-fda0-424f-912c-7c54e8a2ee93
🔒 - Generated by Copilot
@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 4efb65c.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.10%. Comparing base (48da998) to head (4efb65c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1563   +/-   ##
=======================================
  Coverage   88.10%   88.10%           
=======================================
  Files         279      279           
  Lines       23203    23203           
  Branches     3199     3153   -46     
=======================================
  Hits        20444    20444           
  Misses       2071     2071           
  Partials      688      688           
Flag Coverage Δ *Carryforward flag
go 100.00% <ø> (ø)
pester 86.64% <ø> (ø)
pytest-data-pipeline 100.00% <ø> (ø) Carriedforward from 48da998
pytest-dataviewer 89.66% <ø> (ø)
pytest-dm-tools 100.00% <ø> (ø) Carriedforward from 48da998
pytest-evaluation 95.40% <ø> (ø)
pytest-fuzz 3.99% <ø> (ø) Carriedforward from 48da998
pytest-inference 100.00% <ø> (ø) Carriedforward from 48da998
pytest-shared-ci 100.00% <ø> (ø) Carriedforward from 48da998
pytest-training 92.60% <ø> (ø) Carriedforward from 48da998
vitest 85.66% <ø> (ø)
vitest-app 85.66% <ø> (ø)
vitest-components 85.66% <ø> (ø)
vitest-features 85.66% <ø> (ø)
vitest-lib 85.66% <ø> (ø)
vitest-state 85.66% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for hardening the TLS defaults and removing the privileged OSMO role mutation. I locally confirmed the focused tests, ShellCheck, rendered nginx configuration, and current CI state. I left two inline comments covering the user-facing HTTPS configuration contract and production-client behavioral coverage.

Comment thread data-management/viewer/frontend/nginx.conf.template
Comment thread scripts/tests/security/TlsCertificateVerification.Tests.ps1 Outdated
- verify Redis certificate hostnames before purge operations
- exercise production clients and document HTTPS backend trust

🔒 - Generated by Copilot

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
📚 - Generated by Copilot

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f8f1e83a-6a5a-436d-8d39-bebdfe3d8ae4
🔀 - Generated by Copilot

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f8f1e83a-6a5a-436d-8d39-bebdfe3d8ae4
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.

fix(security): enforce TLS certificate verification

3 participants