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

[feature] Features: workspaces, list object v2, hooks #77

Merged
merged 15 commits into from
Jun 21, 2023

Conversation

St4NNi
Copy link
Member

@St4NNi St4NNi commented Jun 20, 2023

Features

This is a major PR that adds several extensions to the API.

Workspaces

Added a workspaces API related to the collection API. workspaces are anonymous collections in special projects that obey special rules. Everybody can create a workspace via a public create_workspace request that only needs a publicly available workspace project_name.
Possible actions:

  • Create a workspace collection in the relevant project
  • Create a service account that only has permissions for the specific collection
  • Return the token and S3 Accesskey / Secrets to the user
  • The user can use the token to regularly behave like a normal anonymous user in the workspace.
  • The user can also delete its workspace via a special delete workspace request.
  • Users can also upgrade their anonymous workspace to a regular workspace collection by login and afterwards calling claim workspace with the previous anonymous token.
  • Users can move all workspace data to a regular collection (only possible after login)

ListObjectV2

A new ListObjectV2 like request was added to query multiple objects and common prefixes via delimiters. This is a public endpoint and will be used by the data proxy to enable ListObjectV2 S3 behavior. See official AWS S3 documentation for behavior details.

HookService

Added a HookService that enables users to register hooks, which are custom actions that should be performed on objects.

  • CreateHook defines a Trigger that will trigger a run and a hook action that defines what should happen when the hook got triggered. In the first iteration this only has two options, call a specific URL with templated Json parameters or perform some Aruna internal actions with the object. The URL call needs to be validated by Credentials (first iteration only supports Bearer / Token authentication). Hooks are project specific for now and can only be created by project_admins.
  • DeleteHook Delete a specific hook from the project.
  • ListHook List all hooks in the project
  • HookCallback provides a URL / Endpoint that should be called when the Hook is finished if the hook does not finish before the specified callback the hook will be marked as "failed".

@St4NNi St4NNi added the enhancement New feature or request label Jun 20, 2023
@St4NNi St4NNi requested review from das-Abroxas and lfbrehm June 20, 2023 15:29
Copy link
Contributor

@das-Abroxas das-Abroxas left a comment

Choose a reason for hiding this comment

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

The only mandatory change I request is the PinCollectionVersion endpoint URL.

Everything else is optional, but it would be nice if you addressed it somehow.

aruna/api/storage/services/v1/collection_service.proto Outdated Show resolved Hide resolved
aruna/api/hooks/services/v1/hooks_service.proto Outdated Show resolved Hide resolved
aruna/api/hooks/services/v1/hooks_service.proto Outdated Show resolved Hide resolved
aruna/api/hooks/services/v1/hooks_service.proto Outdated Show resolved Hide resolved
aruna/api/hooks/services/v1/hooks_service.proto Outdated Show resolved Hide resolved
Copy link
Member

@lfbrehm lfbrehm left a comment

Choose a reason for hiding this comment

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

I agree with @das-Abroxas regarding the name changes. Everything else looks good to me so far.

St4NNi and others added 5 commits June 21, 2023 10:57
Co-authored-by: Jannis Hochmuth <jannis.hochmuth@gmail.com>
Co-authored-by: Jannis Hochmuth <jannis.hochmuth@gmail.com>
Co-authored-by: Jannis Hochmuth <jannis.hochmuth@gmail.com>
Co-authored-by: Jannis Hochmuth <jannis.hochmuth@gmail.com>
Co-authored-by: Jannis Hochmuth <jannis.hochmuth@gmail.com>
@St4NNi St4NNi requested review from das-Abroxas and lfbrehm June 21, 2023 09:05
Copy link
Contributor

@das-Abroxas das-Abroxas left a comment

Choose a reason for hiding this comment

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

I'm happy with that. Nice work 👍

@St4NNi St4NNi merged commit 207f0e9 into dev Jun 21, 2023
@St4NNi St4NNi deleted the features-workspaces-list-object-hooks branch June 21, 2023 10:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants