# Feature SPPM-219 - Differentiate workspace types in API

Project: Stream Project Portfolio Management
Status: closed
URL: https://community.openproject.org/work_packages/SPPM-219

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 17.0.0 |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

| ID | Subject | Type | Status | Assignee | Target versions | Spent time |
| --- | --- | --- | --- | --- | --- | --- |
| SPPM-229 | Add workspaces resources | Implementation | closed |  | 17.0.0 |  |
| SPPM-255 | Change representer references to workspaces | Implementation | closed |  | 17.0.0 |  |
| SPPM-256 | Add `workspace` references next to `project` in representers | Implementation | on hold | Jens Ulferts | Product Backlog |  |

## Bugs and other work packages

| ID | Type | Subject | Status | Assignee | Target versions | Spent time | Module |
| --- | --- | --- | --- | --- | --- | --- | --- |
| OP-18371 | Bug | Workspace not updated in API after favoring it | closed |  | 17.0.0 |  | API |

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers | Jens Ulferts |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** an API user  
**I want to** have distinct resources per workspace type  
**so that** I easily understand what each resource does

**Acceptance criteria**

  - Add a GET workspace index end point
    
      - Returns a mix of workpace types and offers to filter by those

  - Each work space type becomes its own resource: "Project", "Program", "Portfolio"
    
      - The workspace type is also visible in the url

  - For each workspace type (project already has those)
    
      - add show, create (+form), update (+form)

  - Move schema endpoint to `workspaces`

  - Move auxiliary endpoints (e.g. available assignees) to `workspaces`

  - Keep existing `projects` scoped endpoints to not break the API.

**Technical notes**

  - 
    <br>

**Permissions and visibility considerations**

  - Creation requires the type specific global permissions added in <mention class="mention" data-id="65850" data-type="work_package" data-text="###65850">\#\#\#65850</mention>

  - Otherwise, permissions from within the workspace are used same as currently for project.

**Translation considerations**

  - *Key terms and phrases in the key languages* 

**Out of scope**

  - 
    <br>

*Set the* **To be informed/consulted teams** *field to include all teams necessary to be informed of the changes.*
