Skip to content

Conversation

@jpower432
Copy link
Contributor

@jpower432 jpower432 commented Nov 3, 2022

High level design document or approach

  • Outline mock CLI
  • Provides background on Emporous concepts

TODO: Add high level architecture diagram.

Signed-off-by: Jennifer Power [email protected]

Signed-off-by: Jennifer Power <[email protected]>
@jpower432 jpower432 marked this pull request as draft November 3, 2022 18:49
Signed-off-by: Jennifer Power <[email protected]>

docs: updates terminology and simplifies message

Signed-off-by: Jennifer Power <[email protected]>
Signed-off-by: Jennifer Power <[email protected]>
@jpower432 jpower432 changed the title [WIP] docs: initial design proposal docs: initial design proposal Jan 13, 2023
@jpower432 jpower432 marked this pull request as ready for review January 13, 2023 21:57
@jpower432 jpower432 requested review from afflom and sabre1041 January 13, 2023 21:58
@jpower432
Copy link
Contributor Author

jpower432 commented Jan 13, 2023

@afflom @sabre1041 PTAL. The intention of this PR is to serve as a jumping off point and allow this to receive and and incorporate feedback. Please let me know if this would be preferred in a GitHub Discussion rather than a PR. This also might be be a good opportunity to come up with a proposal templates for updates. I could create a follow-on PR for a way to propose enhancements.

Copy link

@afflom afflom left a comment

Choose a reason for hiding this comment

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

Great proposal. I dig it.


The purpose of the Emporous initiative is to create a scalable cross-content correlation framework that enhances the traceability of decentralized software artifacts.

# Workflow and Critical User Journeys
Copy link

Choose a reason for hiding this comment

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

Is it worth mentioning that the CLI is the reference implementation of the Emporous client library? (More than one way to interact with the Emporous client)

On the client side, scoping queries to namespaces and repositories will be supported.
## CLI/Client Libraries
We have existing CLI and library code bases that manage single and linked artifacts. These will continue to be used to publish single artifacts and manage local storage. The CLI/libraries will be extended to interface with the proposed API changes.
## Service Layer
Copy link

Choose a reason for hiding this comment

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

Can we refer to this as an optional component? Or if a smart proxy is unavailable, will the client instantiate its own local "service layer"?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Even if the service is running on a user's machine it is still a running service and is still acting as a gateway between the client and registry. Is there a better way this could be conveyed in your opinion? I do not believe this functionality to be optional.

The attribute query endpoint can be used to automate building applications from existing artifacts. The endpoint will resolve an attribute query to an index manifest of matching descriptors that can be used for artifact publishing.

To enable efficiency in this workflow, it would be best practice to only publish one component or file per artifact.
However, if an artifact is published with more than one file, the Emporous client will allow attribute filtering on individual artifacts.
Copy link

Choose a reason for hiding this comment

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

I posit that an artifact is a blob + metadata. So, are we filtering a singular blob reference within a manifest that has multiple blob references?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The use of artifact throughout this document refers to an OCI artifact (there is an entry in the glossary for this). I would consider an entry for a blob + metadata to be a descriptor. Does this add any clarification?

To enable efficiency in this workflow, it would be best practice to only publish one component or file per artifact.
However, if an artifact is published with more than one file, the Emporous client will allow attribute filtering on individual artifacts.

### Search Domains
Copy link

Choose a reason for hiding this comment

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

I think that the concept of trusted domains is important to this section. From prior discussions, we have identified at least two zones present within a search domain: trusted and untrusted. A trusted zone is a registry that has been explicitly added to the user's search domain. The untrusted zone pertains to registries discovered via links published within the trusted zone.

If my use of the words trusted and untrusted are problematic, please disregard my words and use synonyms.

Copy link

Choose a reason for hiding this comment

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

This might also be important to discovered pURL references.

Copy link
Contributor Author

@jpower432 jpower432 Jan 14, 2023

Choose a reason for hiding this comment

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

I agree with adding something to convey the zones. I think we can use the word "discovered" for registries that have artifacts that satisfy the query, but are not specified by the user. Thoughts?

}
```

### Signatures
Copy link

Choose a reason for hiding this comment

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

I think that a signature being a searchable attribute is relevant to this discussion.

Copy link

Choose a reason for hiding this comment

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

i.e. "A compromised key was used to sign content. Show all content signed by that key"

@jpower432 jpower432 requested review from d10n and sfxworks January 17, 2023 19:40
@jpower432 jpower432 requested a review from a team as a code owner January 29, 2023 00:51
@usrbinkat
Copy link
Member

Recommend discussion on community call, added to 2023-02-01 agenda.

@jpower432 jpower432 marked this pull request as draft February 8, 2023 20:17
@jpower432
Copy link
Contributor Author

Converting to a draft, just to keep it from being merged into this repo until we find the correct place for it.

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.

3 participants