Skip to content

Implement storage.Backend for Artifactory storage #1130

@tylerchr

Description

@tylerchr

Is your feature request related to a problem? Please describe.

At Qualtrics we use Artifactory as an artifact repository, which is not currently supported by Athens. We want to deploy Athens internally. but strong corporate incentives exist to use our internal repository for storage instead of Athens' S3 support.

Describe the solution you'd like

I'd like Athens to support a storage backend which I can use to integrate with our Artifactory instance. Notably, this doesn't necessarily mean a bespoke artifactory storage backend—Artifactory also supports using raw HTTP requests with Basic Authentication.

From my perspective, the better solution would be to implement an http storage backend that exploits Artifactory's direct HTTP API. This has the added upside of looking remarkably similar to the Go module proxy HTTP API itself, though some extensions would be necessary to support the write operations.

Describe alternatives you've considered

Another option is to use Artifactory's REST API and implement a storage backend more tailored to Artifactory's unique API endpoints.

To me this is an inferior option. While it may provide tighter integration with Artifactory, it means that changes to the Artifactory API over time must be mirrored by updated support in Athens.

Additional context

I got curious and wrote up an http storage backend to demonstrate what this would look like. I'll submit that as a PR shortly, for a starting point for discussions on what we might be able to achieve here.

Update: Submitted #1131.

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposalA proposal for discussion and possibly a votestoragework to do on one or more of our storage systems

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions