Skip to content

Commit

Permalink
Merge pull request #56 from WashingtonKK/PD-47
Browse files Browse the repository at this point in the history
PD-47 - Rename projects to workspaces
  • Loading branch information
drasko authored Nov 27, 2024
2 parents c3ae8f3 + 52f73f8 commit 935711f
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 44 deletions.
4 changes: 2 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ Prism provides a computation management service for [CoCos AI](https://docs.coco
| Service | Description |
| -------------- | --------------------------------------------------------------------------------------------------------- |
| Auth | Manages user policies in relation to backends, certs and computations. |
| Users | Manages platform's users and auth concerns in regards to users and projects. |
| Users | Manages platform's users and auth concerns in regards to users and workspaces. |
| Computations | Manages computation lifecycle, from creation to running and monitoring. |
| Backends | Manages connections to manager allowing running of computations on CoCos within secure enclaves. |
| Certs | Manages certification lifecyle (issuing, revocation, renewal) used for mTLS between backends and manager. |
| Billing | Manages payments on the platform and controls resource access based on billing plans. |
| Invitations | Manages user inivations to access projects. |
| Invitations | Manages user inivations to access workspaces. |
| User Interface | Provides an web interface to provide platform access over a visual interface. |

![Architecture](img/arch.drawio.png)
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ A user can also register/create an account using the UI by clicking the Register
```bash
curl -sSiX POST https://prism.ultraviolet.rs/auth/domains/ -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
{
"name": "project 1",
"name": "workspace 1",
"alias": "proj1"
}
EOF
Expand All @@ -78,7 +78,7 @@ Content-Type: application/json
Date: Tue, 30 Apr 2024 13:17:33 GMT
Content-Length: 235

{"id":"fda88db8-97e1-4560-8db1-29e8a40b5d0c","name":"project 1","alias":"org1","status":"enabled","created_by":"0dce22c6-1a94-4a8e-a701-185a4c37df58","created_at":"2024-04-30T13:17:32.884558Z","updated_at":"0001-01-01T00:00:00Z"}
{"id":"fda88db8-97e1-4560-8db1-29e8a40b5d0c","name":"workspace 1","alias":"org1","status":"enabled","created_by":"0dce22c6-1a94-4a8e-a701-185a4c37df58","created_at":"2024-04-30T13:17:32.884558Z","updated_at":"0001-01-01T00:00:00Z"}
```

The workspaces page gives the user the ability to either create an entirely new workspace or join an existing workspace. The user can also view the workspace they are a part of and the workspace they have created.
Expand All @@ -94,7 +94,7 @@ To log in to a Workspace:
```bash
curl -sSiX POST https://prism.ultraviolet.rs/users/tokens/refresh -H "Content-Type: application/json" -H "Authorization: Bearer <user_refresh_token>" -d @- << EOF
{
"domain_id": "<project_id>"
"domain_id": "<workspace_id>"
}
EOF
```
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
8 changes: 4 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Prism

Prism is a web based SAAS that is intended for use by the end user, to allow for a user in an project to benefit from the entire CoCoS AI system. Prism adds a layer of security and user management to the CoCoS AI system by providing functionality such as:
Prism is a web based SAAS that is intended for use by the end user, to allow for a user in an workspace to benefit from the entire CoCoS AI system. Prism adds a layer of security and user management to the CoCoS AI system by providing functionality such as:

- User and Consortium (project) creation and management
- Policy creation and management (between users, projects, and computations)
- User and Consortium (workspace) creation and management
- Policy creation and management (between users, workspaces, and computations)
- Billing and payment management
- Computation creation and management

## What is Prism AI

Prism AI is a platform designed for secure, confidential AI workloads using Trusted Execution Environments (TEEs). It enables secure VM provisioning, fine-grained access control, and end-to-end encryption to ensure data privacy in collaborative AI projects. The platform supports various computational backends and includes logging, monitoring, and a user-friendly interface. It’s particularly useful in sectors like healthcare, finance, and government for secure data processing and collaboration. More details can be found on the [Prism AI page](https://ultraviolet.rs/prism.html).
Prism AI is a platform designed for secure, confidential AI workloads using Trusted Execution Environments (TEEs). It enables secure VM provisioning, fine-grained access control, and end-to-end encryption to ensure data privacy in collaborative AI workspaces. The platform supports various computational backends and includes logging, monitoring, and a user-friendly interface. It’s particularly useful in sectors like healthcare, finance, and government for secure data processing and collaboration. More details can be found on the [Prism AI page](https://ultraviolet.rs/prism.html).

![Collaborative AI drawio](https://user-images.githubusercontent.com/23095882/183417817-a5013c43-637e-488b-9e06-ee6fe8e588b0.svg)

Expand Down
68 changes: 34 additions & 34 deletions docs/projects.md → docs/workspaces.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Projects
# Workspaces

Projects represent a consortium of users, computations, and resources that provides a single way to allow management of resources in the system. The projects / projects simplify access control by allowing only users who are in a particular project to access resources which they have been assigned to.
Workspaces represent a consortium of users, computations, and resources that provides a single way to allow management of resources in the system. The workspaces / workspaces simplify access control by allowing only users who are in a particular workspace to access resources which they have been assigned to.

Within projects, different users have different roles that allow them to only perform certain operations within the project, such as creation of other users and other admin related tasks. A single user can belong to multiple projects, with which they can have different roles based on the policy assigned.
Within workspaces, different users have different roles that allow them to only perform certain operations within the workspace, such as creation of other users and other admin related tasks. A single user can belong to multiple workspaces, with which they can have different roles based on the policy assigned.

For any user to access the CoCoS system, they must be part of an project, and have to be signed in to the project.
For any user to access the CoCoS system, they must be part of an workspace, and have to be signed in to the workspace.

## Create an project
## Create an workspace

```bash
curl -sSiX POST https://prism.ultraviolet.rs/auth/domains/ -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
{
"name": "project 1",
"name": "workspace 1",
"alias": "org1"
}
EOF
Expand All @@ -22,7 +22,7 @@ For example:
```bash
curl -sSiX POST https://prism.ultraviolet.rs/auth/domains/ -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
{
"name": "project 1",
"name": "workspace 1",
"alias": "org1"
}
EOF
Expand All @@ -34,7 +34,7 @@ Content-Length: 235

{
"id":"fda88db8-97e1-4560-8db1-29e8a40b5d0c",
"name":"project 1",
"name":"workspace 1",
"alias":"org1",
"status":"enabled",
"created_by":"0dce22c6-1a94-4a8e-a701-185a4c37df58",
Expand All @@ -46,19 +46,19 @@ Content-Length: 235
On the ui the steps are as follows:

1. Log in to prism platform with a user with administrator permission.
2. On successfully log in, projects page is displayed. Click on 'New Project'.
![Projects page](img/ui/projects.png)
2. On successfully log in, workspaces page is displayed. Click on 'New Project'.
![Workspaces page](img/ui/workspaces.png)
3. Fill the required fields and click 'Create Project'
![Project Creation](img/ui/projcreate.png)

## Update project
## Update workspace

Update project
Update workspace

```bash
curl -sSiX PUT https://prism.ultraviolet.rs/auth/domains/<project_id> -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
curl -sSiX PUT https://prism.ultraviolet.rs/auth/domains/<workspace_id> -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
{
"name": "project 1",
"name": "workspace 1",
"alias": "org1"
}
EOF
Expand All @@ -69,7 +69,7 @@ For example:
```bash
curl -sSiX PATCH https://prism.ultraviolet.rs/auth/domains/127910df-7eca-42dc-a625-1f8fda70229c -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
{
"name": "project 1",
"name": "workspace 1",
"alias": "org1"
}
EOF
Expand All @@ -80,7 +80,7 @@ Content-Length: 294

{
"id":"127910df-7eca-42dc-a625-1f8fda70229c",
"name":"project 1",
"name":"workspace 1",
"alias":"org1",
"status":"enabled",
"created_by":"c7a1374c-b6e1-4cfd-b333-696bec0c672d",
Expand All @@ -92,17 +92,17 @@ Content-Length: 294

On the ui the steps are as follows:

1. Click on 'Projects' on the navigation panel to view project details.
![Project Details](img/ui/project details.png)
1. Click on 'Workspaces' on the navigation panel to view workspace details.
![Project Details](img/ui/workspace details.png)

2. Click on 'Update Project' to navigate to the update project page.
2. Click on 'Update Project' to navigate to the update workspace page.
3. Make necessary changes and click 'update'
![Updating an Project](img/ui/update project.png)
![Updating an Project](img/ui/update workspace.png)

## Get project
## Get workspace

```bash
curl -isSX GET https://prism.ultraviolet.rs/auth/domains/<project_id> -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>"
curl -isSX GET https://prism.ultraviolet.rs/auth/domains/<workspace_id> -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>"
```

For example:
Expand All @@ -117,7 +117,7 @@ Content-Length: 294

{
"id":"127910df-7eca-42dc-a625-1f8fda70229c",
"name":"project 1",
"name":"workspace 1",
"alias":"org1",
"status":"enabled",
"created_by":"c7a1374c-b6e1-4cfd-b333-696bec0c672d",
Expand All @@ -129,10 +129,10 @@ Content-Length: 294

On the ui the steps are as follows:

1. Click on 'Projects' on the navigation panel to view project details.
![Project Details](img/ui/project details.png)
1. Click on 'Workspaces' on the navigation panel to view workspace details.
![Project Details](img/ui/workspace details.png)

## Get projects
## Get workspaces

To paginate the results, use `offset`, `limit`, `metadata`, `name`, `status`, `parentID`, `ownerID`, `tree` and `dir` as query parameters.

Expand Down Expand Up @@ -176,7 +176,7 @@ Content-Length: 898
"updated_at":"0001-01-01T00:00:00Z"
},
{"id":"127910df-7eca-42dc-a625-1f8fda70229c",
"name":"project 1",
"name":"workspace 1",
"alias":"org1",
"status":"enabled",
"permission":"administrator",
Expand All @@ -191,20 +191,20 @@ Content-Length: 898

On the ui the steps are as follows:

1. Click on user profile at the top right, then click on "Projects" on the menu. This navigates to the projects page.
1. Click on user profile at the top right, then click on "Workspaces" on the menu. This navigates to the workspaces page.
![User Profile](img/ui/profile.png)
2. Project page is displayed.
![Projects](img/ui/projects.png)
![Workspaces](img/ui/workspaces.png)

## Assign

Assign user to an project
Assign user to an workspace

```bash
curl -sSiX POST https://prism.ultraviolet.rs/auth/domains/<project_id>/members -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
curl -sSiX POST https://prism.ultraviolet.rs/auth/domains/<workspace_id>/members -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>" -d @- << EOF
{
"subject": "<user_id>",
"object": "<project_id>",
"object": "<workspace_id>",
"relation": ["<relations>"]
}
EOF
Expand Down Expand Up @@ -239,10 +239,10 @@ On the ui the steps are as follows:

To paginate the results, use `offset`, `limit`, `metadata`, `name`, `status`, `parentID`, `ownerID`, `tree` and `dir` as query parameters.

> Must take into consideration the user identified by the `user_token` needs to be assigned to the same project identified by `group_id` with `g_list` action or be the owner of the project identified by `group_id`.
> Must take into consideration the user identified by the `user_token` needs to be assigned to the same workspace identified by `group_id` with `g_list` action or be the owner of the workspace identified by `group_id`.
```bash
curl -isSX GET https://prism.ultraviolet.rs/auth/domains/<project_id>/users -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>"
curl -isSX GET https://prism.ultraviolet.rs/auth/domains/<workspace_id>/users -H "Content-Type: application/json" -H "Authorization: Bearer <user_token>"
```

For example:
Expand Down
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ nav:
- Assets: assets.md
- Computation Logs: computation-logs.md
- Users: users.md
- Projects: projects.md
- Workspaces: workspaces.md
- Certs: certs.md
- Backends: backends.md
- Algorithms: algorithms.md
Expand Down

0 comments on commit 935711f

Please sign in to comment.