Skip to content

Reuse staging endpoints #1

@smashwilson

Description

@smashwilson

As you observed this morning, there's definitely a bunch of redundancy between this and the changes I've been planning to do to support pull request builds. For both use cases, we want to host new metadata envelopes "in front of" a production content service. From this repo I'm pretty certain you'll be able to directly use whatever "staging" endpoints are included as part of that effort - the content from the PR build will be sent from a preparer running on a Strider PR build while the content from the web client will be sent directly from the web client. We'll just have to be careful that our URL prefixes don't collide somehow.

I wrote up the changes that I'd had in mind today:

To compare our approaches:

  • I like using URL segments to identify the "environment" rather than hacky regexp matching. (I'm increasingly thinking that we should explicitly state the content IDs are URLs and do all the normalization, etc that's implied by that, but that's a bigger discussion I think.)
  • The presenter-manager is something I explicitly didn't want to do. Launching a separate presenter container for every "build" will quickly overwhelm us once we start doing builds for every commit pushed to a PR across 20-ish content repositories. I'm trying to avoid needing to reap old builds away or put time limits on them. Also, without a wildcard cert, it'll be much harder to use HTTPS for them.
  • I'm not certain whether we want to have separate proxy services or not. I'm currently thinking that I won't be able to do the presented path manipulation that I want to do to by just putting a proxy in front of the presenter - when I see a path of /build-whatever/foo/bar/baz/, I want to (a) use /foo/bar/baz/ to find the template and the content ID prefix, but (b) use /build-whatever/foo/bar/baz/ to construct the content ID of https://github.com/someorg/somerepo/v9000/build-whatever/foo/bar/baz/ that's used to actually find the envelope; otherwise we lose information between the presenter-proxy and the content-service-proxy. (See the point above about not running separate services for every build.) There might be a way to make this work, though?
  • You've tempted me to bring up Store metadata envelopes in MongoDB content-service#24 again. So much simpler than the Cloud Files wrangling...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions