Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Service Endpoint to retrieve Secret Shares based on Tags #34

Open
7 tasks
kindlich opened this issue May 19, 2022 · 4 comments
Open
7 tasks

Add Service Endpoint to retrieve Secret Shares based on Tags #34

kindlich opened this issue May 19, 2022 · 4 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@kindlich
Copy link
Contributor

kindlich commented May 19, 2022

Note: This issue comes from a discussion on carbynestack/ephemeral#17

Currently we have
intra-vcp/secret-shares to download a secret's shares based on their secret id.

For allowing to execute ephemeral games using tag-filters, we need an endpoint that

  • Is accessible on the intra-vcp Endpoint /intra-vcp/** so that it later on is not authenticated
  • Accepts a Tag-Filter (Query?) Parameter to select all Secrets that have all the provided tags (AND-combined), similar to the currently existing /secret-shares endpoint that retrieves MetaData
  • Accepts Sort Property/Direction (Query?) Parameters.
    • This ensures that the output of secrets is the same order on all amphoras across the virtual cloud.
    • Also, some algorithms may depend on the order (e.g. if it's about time series with moving averages etc.)
    • If not provided by the user, it should be sort by creation-date in an ascending order
  • Returns the Secret Shares as either
    • A single OutputDeliveryObject containing all Secret Shares concatenated
    • OR a new Transfer Object that is a listing of OutputDeliveryObjects with one per Secret and optionally additional metadata (like the ids of the secrets, etc.)
      EDIT: Preferred to have at least something that tells the number of shares, as this may be required later down the line. Example UseCase: allowing for Placeholders in algorithm code that are filled with parameters like {{NUMBER_OF_SECRETS}} or similar, which may be dynamically be calculated by ephemeral based on the provided inputs

NOT Part of this issue:

  • Making sure that all endpoints return the same set of secrets (only the order is guaranteed by the endpoint). If in parallel a request deleted/re-tagged secrets so that some of the VCPs include a given secret while others don't, this is currently the user's responsibility.
    Part of resolving this issue may be adding a Notice to the README, though.

Open questions to discuss:

  • Should this endpoint be HTTP or WebSocket (since it may transmit a lot of data, is HTTP enough?)
  • Should this endpoint offer Paging or just return everything at once?
@strieflin strieflin changed the title Add Service Endpoint to retrieve Tuple Shares based on Tags Add Service Endpoint to retrieve Secret Shares based on Tags Jun 2, 2022
@strieflin strieflin added the kind/feature Categorizes issue or PR as related to a new feature. label Jun 2, 2022
@github-actions
Copy link

This issue has been marked stale because it has been open for 90 days with no activity. It will be automatically closed in 30 days if no further activity occurs.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 24, 2022
@strieflin strieflin added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Nov 24, 2022
@github-actions github-actions bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 25, 2022
@strieflin strieflin added priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Dec 1, 2022
@strieflin
Copy link
Member

While this functionality would surely add convenience, it also comes with a lot of complexity. Consensus on a common set and order of input objects is at the heart of this functionality and cannot be decoupled. Until this feature is implemented, filtering of objects can be done client-side.

@strieflin
Copy link
Member

Part of the implementation has been done in carbynestack/cli#18 and carbynestack/ephemeral#17.

@github-actions
Copy link

This issue has been marked stale because it has been open for 90 days with no activity. It will be automatically closed in 30 days if no further activity occurs.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 27, 2023
@strieflin strieflin removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

No branches or pull requests

2 participants