Page MenuHomePhabricator

Proxy Diffusion Conduit API calls
ClosedPublic

Authored by epriestley on Jan 23 2015, 1:10 PM.
Tags
None
Referenced Files
F14065675: D11475.diff
Tue, Nov 19, 5:51 AM
F14008113: D11475.id27605.diff
Tue, Oct 29, 3:54 PM
Unknown Object (File)
Oct 11 2024, 1:03 AM
Unknown Object (File)
Oct 10 2024, 11:59 AM
Unknown Object (File)
Oct 6 2024, 12:49 AM
Unknown Object (File)
Oct 4 2024, 6:26 PM
Unknown Object (File)
Sep 17 2024, 7:44 AM
Unknown Object (File)
Sep 12 2024, 6:40 AM
Subscribers

Details

Reviewers
btrahan
Maniphest Tasks
T7020: Proxy Diffusion Conduit requests
Commits
Restricted Diffusion Commit
rPd94d1da61098: Proxy Diffusion Conduit API calls
Summary

Fixes T7020. When an external user makes a Conduit request to Diffusion but the repository isn't hosted locally, we need to proxy it.

This also adds a guard layer to prevent requests from getting infinitely proxied inside the cluster.

In "trivial" configurations (where the repository is a service repository, but the service is on the local device) I'm making us always proxy anyway. This basically makes it reasonable to test this stuff (otherwise you'd have to set up two different installs) and this configuration doesn't make much sense in real life (if you're using multiple machines, making one a dedicating daemons+repo box is almost certainly the most reasonable configuration, even for a cluster size of 2).

Test Plan
  • With a service-hosted repository, made Diffusion conduit calls and browsed the UI. Verified requests got proxied once, then resovled.
  • With a non-service repository, made Diffusion conduit calls and browsed UI. Verified requests were handled in-process immediately.

Diff Detail

Repository
rP Phabricator
Branch
cproxy2
Lint
Lint Passed
SeverityLocationCodeMessage
Advicesrc/applications/conduit/controller/PhabricatorConduitAPIController.php:37XHP16TODO Comment
Unit
Tests Passed
Build Status
Buildable 4014
Build 4027: [Placeholder Plan] Wait for 30 Seconds