Skip to content

ITEP-92735: Mapping service should communicate with outside world over proxy#1469

Merged
saratpoluri merged 31 commits into
mainfrom
fix/ITEP-92735
Jun 3, 2026
Merged

ITEP-92735: Mapping service should communicate with outside world over proxy#1469
saratpoluri merged 31 commits into
mainfrom
fix/ITEP-92735

Conversation

@saratpoluri
Copy link
Copy Markdown
Contributor

@saratpoluri saratpoluri commented May 28, 2026

📝 Description

This PR updates SceneScape’s mapping service exposure so external clients access it through the manager’s Apache reverse proxy (instead of directly via :8444), aligning service-to-outside-world communication with the existing proxy pattern used for autocalibration.

✨ Type of Change

Select the type of change your PR introduces:

  • 🐞 Bug fix – Non-breaking change which fixes an issue
  • 🚀 New feature – Non-breaking change which adds functionality
  • 🔨 Refactor – Non-breaking change which refactors the code base
  • 💥 Breaking change – Changes that break existing functionality
  • 📚 Documentation update
  • 🔒 Security update
  • 🧪 Tests
  • 🚂 CI

🧪 Testing Scenarios

Describe how the changes were tested and how reviewers can test them too:

  • ✅ Tested manually
  • 🤖 Ran automated end-to-end tests

Manual tests run:
Upload a polycam zip. Successful registration. Auto calibrate a camera. Successful localization and pose returned to UI.
Mapping service called via UI using "Generate Mesh". Mesh looks correct and the camera pose is accurate wrt Mesh.

✅ Checklist

Before submitting the PR, ensure the following:

  • 🔍 PR title is clear and descriptive
  • 📝 For internal contributors: If applicable, include the JIRA ticket number (e.g., ITEP-123456) in the PR title. Do not include full URLs
  • 💬 I have commented my code, especially in hard-to-understand areas
  • 📄 I have made corresponding changes to the documentation
  • ✅ I have added tests that prove my fix is effective or my feature works

@saratpoluri saratpoluri marked this pull request as draft May 28, 2026 05:30
@saratpoluri saratpoluri requested a review from Copilot May 28, 2026 05:30
@saratpoluri saratpoluri changed the title ITEP-92735: Mapping service should communicate with outside world ove… ITEP-92735: Mapping service should communicate with outside world over proxy May 28, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates SceneScape’s mapping service exposure so external clients access it through the manager’s Apache reverse proxy (instead of directly via :8444), aligning service-to-outside-world communication with the existing proxy pattern used for autocalibration.

Changes:

  • Added Apache reverse-proxy routing for the mapping service under /api/mapping/.
  • Updated tests, examples, and OpenAPI docs to use proxied URLs (e.g., https://localhost/api/mapping/...) and stopped publishing mapping/autocalibration service ports in compose examples.
  • Adjusted mapping unit test dependencies to include runtime imports needed by mapping modules under test.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/functional/test_auto_calibration.py Switch autocalibration functional test base URL to go through the web proxy.
tests/functional/test_apriltag_registration_update.py Switch autocalibration registration tests to use the web proxy base URL.
tests/compose/mapping.yml Stop publishing mapping service port to the host (proxy-only access).
tests/compose/autocalibration.yml Stop publishing autocalibration service port to the host (proxy-only access).
tests/api/conftest.py Point MappingClient at the proxied mapping API path.
sample_data/docker-compose-dl-streamer-example.yml Stop publishing mapping service port (proxy-only access).
mapping/tools/client_example.py Update default CLI URL to the proxied mapping endpoint.
mapping/tests/requirements-test.txt Add mapping runtime deps needed for importing modules in tests.
manager/config/default-ssl.conf Add Apache ProxyPass rules for /api/mapping/ to the mapping backend.
docs/user-guide/microservices/mapping-service/mapping-service.md Update mapping API usage URLs to the proxied path.
docs/user-guide/microservices/mapping-service/build-from-source.md Update validation curl URLs to the proxied path.
docs/user-guide/microservices/mapping-service/api-docs/mapping-api.yaml Update OpenAPI servers to reflect proxy access as recommended.
docs/user-guide/microservices/auto-calibration/api-reference.md Update autocalibration base URL to the proxied path.
docs/user-guide/microservices/auto-calibration/_assets/autocalibration-api.yaml Update OpenAPI server URL for proxied autocalibration access.

Comment thread docs/user-guide/microservices/mapping-service/mapping-service.md Outdated
Comment thread docs/user-guide/microservices/mapping-service/build-from-source.md Outdated
Comment thread docs/user-guide/microservices/mapping-service/build-from-source.md Outdated
saratpoluri and others added 2 commits May 27, 2026 23:05
- Comment out direct host port exposure (8443, 8444) in test compose files
- Update BASE_URL in autocalibration functional tests to route through
  the Apache proxy at web.scenescape.intel.com instead of directly to
  autocalibration.scenescape.intel.com:8443
- Update all /v1/ URL paths to /api/v1/autocalibration/ to match the
  new ProxyPass configuration

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@saratpoluri saratpoluri requested a review from Copilot May 28, 2026 06:37
@saratpoluri saratpoluri marked this pull request as ready for review May 28, 2026 06:38
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 7 comments.

Comments suppressed due to low confidence (1)

tests/functional/test_auto_calibration.py:217

  • This request URL is built from a module-level constant, so it ignores the functional test CLI option --weburl (wired into FunctionalTest.params). Build the URL from self.params['weburl'] to allow running tests against custom endpoints.
  def start_calibration(self, image_b64, intrinsics=None):
    url = f"{AUTOCALIB_BASE}/cameras/{self.camera_id}/calibration"
    payload = {"image": image_b64}
    if intrinsics is not None:
      payload["intrinsics"] = intrinsics
    try:
      r = requests.post(url, json=payload, verify=self.rootcert)

Comment thread docs/user-guide/microservices/mapping-service/mapping-service.md Outdated
Comment thread tests/functional/test_auto_calibration.py
Comment thread tests/functional/test_auto_calibration.py
Comment thread tests/functional/test_auto_calibration.py
Comment thread tests/functional/test_apriltag_registration_update.py Outdated
Comment thread tests/functional/test_apriltag_registration_update.py Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Comment thread docs/user-guide/microservices/mapping-service/mapping-service.md Outdated
Comment thread manager/config/default-ssl.conf
Comment thread manager/config/webserver-init Outdated
@saratpoluri saratpoluri added the auto-update Keep branch up to date with base label Jun 1, 2026
Copy link
Copy Markdown
Contributor

@ltalarcz ltalarcz left a comment

Choose a reason for hiding this comment

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

LGTM, assuming Autocalibration and Mapping services were manually sanity checked.

@saratpoluri
Copy link
Copy Markdown
Contributor Author

Manual tests run:
Upload a polycam zip. Successful registration. Auto calibrate a camera. Successful localization and pose returned to UI.
Mapping service called via UI using "Generate Mesh". Mesh looks correct and the camera pose is accurate wrt Mesh.

@saratpoluri
Copy link
Copy Markdown
Contributor Author

@sbelhaik : if RC3 is definitely getting created, then I would like to merge this one.

Comment thread manager/config/webserver-init
@ltalarcz ltalarcz removed the auto-update Keep branch up to date with base label Jun 3, 2026
Comment thread manager/config/default-ssl.conf Outdated
Comment thread manager/config/webserver-init Outdated
@sbelhaik
Copy link
Copy Markdown
Contributor

sbelhaik commented Jun 3, 2026

@saratpoluri MODEL_TYPE=vggt doesn't overwrite mapanything

$ docker image inspect scenescape-mapping-vggt:2026.1.0-rc2 --format '{{range .Config.Env}}{{println .}}{{end}}' | grep MODEL_TYPE
MODEL_TYPE=mapanything

3f5e36e & ba56a57 fix the issue.

@saratpoluri saratpoluri dismissed sbelhaik’s stale review June 3, 2026 20:41

Addressed all comments

@saratpoluri saratpoluri enabled auto-merge (squash) June 3, 2026 20:56
@saratpoluri saratpoluri added the auto-update Keep branch up to date with base label Jun 3, 2026
@scenescapecicd scenescapecicd removed the auto-update Keep branch up to date with base label Jun 3, 2026
@saratpoluri saratpoluri merged commit daece57 into main Jun 3, 2026
32 checks passed
@saratpoluri saratpoluri deleted the fix/ITEP-92735 branch June 3, 2026 21:39
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.

8 participants