diff --git a/content/en/docs/apidocs-mxsdk/apidocs/apps/projects-api-v2.md b/content/en/docs/apidocs-mxsdk/apidocs/apps/projects-api-v2.md index 5eb78336097..ac0edf068c8 100644 --- a/content/en/docs/apidocs-mxsdk/apidocs/apps/projects-api-v2.md +++ b/content/en/docs/apidocs-mxsdk/apidocs/apps/projects-api-v2.md @@ -5,11 +5,8 @@ type: swagger description: "The Projects API manages your projects and their teams." weight: 100 restapi: true -beta: true --- -{{% alert color="info" %}} This feature is currently in beta. For more information, see [Beta Releases](/releasenotes/beta-features/). {{% /alert %}} - ## Introduction The Mendix Projects API allows you to create, edit or delete your projects. diff --git a/content/en/docs/deployment/mendix-cloud-deploy/_index.md b/content/en/docs/deployment/mendix-cloud-deploy/_index.md index cccc65e7f76..a8dce2a4906 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/_index.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/_index.md @@ -75,12 +75,16 @@ The system uses the following criteria when determining if an app is unused: * The app was created more than a year ago * No commits since the app was created +Once a project is marked for deletion, the system uses a grace period of 14 calendar days before it is permanently deleted. + You can prevent this clean up by performing one of the following actions: * Make changes and commit them to the Team Server * [Pin your app](/developerportal/#app-tiles) * [Invite someone](/developerportal/general/team/#inviting) to collaborate with you on your app +Pinning a project that has been marked for deletion unmarks it immediately. Changes to the other criteria do not effect the mark-for-deletion immediately, but are verified before the actual deletion. + ### Licensed App A licensed app runs on a node with at least two environments: production and acceptance. If required, you can also add a test environment or use [Flexible Environments](#flexible-environments). Your licensed app is linked to a node and can be deployed to any of these environments. It is possible to specify different [resource packs](#resource-pack) for each of these environments, but Mendix recommends that you make your production and acceptance environments the same size. diff --git a/content/en/docs/developerportal/_index.md b/content/en/docs/developerportal/_index.md index 630af96d144..e6788de3e2d 100644 --- a/content/en/docs/developerportal/_index.md +++ b/content/en/docs/developerportal/_index.md @@ -56,6 +56,8 @@ The **My Apps** tab displays all the apps for which you are a [Team](/developerp If you pin an app, it stays on top. +You can filter the overview to display only the apps that are marked for deletion. Read more about how we mark apps for deletion [here](/developerportal/deploy/mendix-cloud-deploy/#projects-deletion). + Use the drop-down menu on the right side of the page to sort the apps by **Pinned**, **Recent Activity** or in alphabetical order of **App Name**. ### App Tiles {#app-tiles} @@ -101,7 +103,7 @@ The **Company Apps** tab displays all the apps created by members of your [compa There are also details on the app's [Target Cloud](/deployment/), and the [Total Members](/control-center/members/) who can view or edit the app. -You can also sort the order of the apps here by **Updated Date**, **Last Created**, **App Name**, **App Name, descending**, **Oldest Updated**, or **Oldest Created**. +You can also sort the order of the apps here by **Recent Activity**, **Created Date**, **Name**. ## Guide Categories diff --git a/content/en/docs/developerportal/general/settings/_index.md b/content/en/docs/developerportal/general/settings/_index.md index a6ee58b2b7c..1e4a77722df 100644 --- a/content/en/docs/developerportal/general/settings/_index.md +++ b/content/en/docs/developerportal/general/settings/_index.md @@ -135,16 +135,6 @@ The **History** tab presents the collaboration actions for the app. On this page When you select a history item and click **Show item**, the details of the story, Sprint, or [feedback item](/developerportal/app-insights/feedback/) will be presented. -## Story Archive {#story-archive} - -Once you have switched from Mendix Stories to Epics or Jira, Mendix archives any work you may have had in Mendix Stories. You can review your work on this tab, and download it if necessary. - -{{% alert color="warning" %}} -Mendix will keep this data until October 1, 2024. Until then, you will be able to export it to Excel in case you need an offline copy. Mendix strongly urges you to download your work before that date. -{{% /alert %}} - -{{< figure src="/attachments/developerportal/general/settings/story-archive.png" width="700" class="no-border" >}} - ## Read More * [Leave and Delete an App](/developerportal/general/leave-delete-app/) diff --git a/content/en/docs/releasenotes/developer-portal/_index.md b/content/en/docs/releasenotes/developer-portal/_index.md index a01f46fa1b3..632b65a3533 100644 --- a/content/en/docs/releasenotes/developer-portal/_index.md +++ b/content/en/docs/releasenotes/developer-portal/_index.md @@ -19,6 +19,13 @@ To see the current status of the Mendix Portal, see [Mendix Status](https://stat ## 2025 +### March 30, 2025 + +#### New Features + +* We have added a new endpoint to the [Projects API](/apidocs-mxsdk/apidocs/projects-api/). The endpoint allows clients to retrieve full details of a project and its team. +* We have implemented all logic for the cleanup of unused projects and will soon start marking projects for deletion. Once a project is marked, you get a notice on the MyApps page. There you can filter the page to see which projects are marked. Once marked, you have two calendar weeks to get it unmarked. The easiest way to do this is by pinning the project. For more information, see [Deletion of Unused Projects](/developerportal/deploy/mendix-cloud-deploy/#projects-deletion). + ### March 20, 2025 #### New Features @@ -352,7 +359,7 @@ It is turned off by default. Scrum Master can switch it on in the Project Manage #### Improvements -* [Epics](/developerportal/project-management/epics/), our new agile planning tool has [replaced Mendix Stories](#stories-deprecation). We have added the option to export data from the [Story Archive](/developerportal/collaborate/general-settings/#story-archive) in batches, for those of you who had a lot of stories to export. +* [Epics](/developerportal/project-management/epics/), our new agile planning tool has [replaced Mendix Stories](#stories-deprecation). We have added the option to export data from the Story Archive in batches, for those of you who had a lot of stories to export. You will need to export everything you want to keep before 1 October, 2024. After that, old data will be deleted. @@ -462,7 +469,7 @@ We have made the following improvements to the **Access Management** page in Por #### Improvements -* We improved the Sprint filter in [Story Archive](/developerportal/collaborate/general-settings/#story-archive) so that you can now type the Sprint name in a text box. +* We improved the Sprint filter in Story Archive so that you can now type the Sprint name in a text box. #### Fixes @@ -616,7 +623,7 @@ We have made the following improvements to the **Access Management** page in Por #### New Features -* With both Epics and Jira connector as new options to plan your work, we are getting ready to say goodbye to Mendix Stories on October 1, 2023. As of today, once you switch to [Epics](/developerportal/project-management/epics/) or [Jira](/developerportal/project-management/jira-connector/), we will [archive all your work in Mendix Stories](/developerportal/collaborate/general-settings/#story-archive) and you will not be able to switch back to Mendix Stories anymore. The Scrum Master of your team can choose the right project management tool for you on the [Project Management](/developerportal/collaborate/general-settings/#project-management) tab on the **General Settings** page. +* With both Epics and Jira connector as new options to plan your work, we are getting ready to say goodbye to Mendix Stories on October 1, 2023. As of today, once you switch to [Epics](/developerportal/project-management/epics/) or [Jira](/developerportal/project-management/jira-connector/), we will archive all your work in Mendix Stories and you will not be able to switch back to Mendix Stories anymore. The Scrum Master of your team can choose the right project management tool for you on the [Project Management](/developerportal/collaborate/general-settings/#project-management) tab on the **General Settings** page. * To highlight the story tool you choose for your app, we gave it its own section in the navigation, called [Project Management](/developerportal/project-management/). * With these changes, navigation in Epics works a bit differently than before: the navigation items are on a pane on the left now instead of at the top, so it is easier for you to get from one part of the Developer Portal to another. (If you need more space on the screen, you can always collapse the navigation pane.) * Speaking of Epics, we have released the new public API. You can find all the information in our [documentation](/apidocs-mxsdk/apidocs/epics-api/). diff --git a/static/attachments/developerportal/general/settings/story-archive.png b/static/attachments/developerportal/general/settings/story-archive.png deleted file mode 100644 index 38eb93d6557..00000000000 Binary files a/static/attachments/developerportal/general/settings/story-archive.png and /dev/null differ diff --git a/static/openapi-spec/projects-v2.yaml b/static/openapi-spec/projects-v2.yaml index ae1c2c4e885..4d032f82c21 100644 --- a/static/openapi-spec/projects-v2.yaml +++ b/static/openapi-spec/projects-v2.yaml @@ -50,6 +50,23 @@ paths: '500': $ref: '#/components/responses/Http500' '/projects/{project-id}': + get: + tags: + - Projects + summary: 'Get project details' + description: 'Returns full details of a single project.
Every request must be authenticated by a Personal Access Token containing the scope `mx:app:metadata:read`. Deactivated projects will only be returned for Mendix Administrators.' + operationId: get-project + parameters: + - $ref: '#/components/parameters/project-id' + responses: + '200': + $ref: '#/components/responses/ProjectResponse' + '401': + $ref: '#/components/responses/Http401' + '404': + $ref: '#/components/responses/Http404' + '500': + $ref: '#/components/responses/Http500' delete: tags: - Projects @@ -317,6 +334,12 @@ tags: description: 'Project roles' components: schemas: + UUID: + type: string + format: uuid + pattern: "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + maxLength: 36 + description: Unique identifier in the Mendix Platform. Account: type: object description: 'Account (or company) that owns the resource' @@ -329,6 +352,20 @@ components: type: string description: 'Name of the account' maxLength: 100 + User: + type: object + description: Details of a user. + properties: + userId: + $ref: "#/components/schemas/UUID" + fullName: + type: string + description: Full name of the member. + avatarUrl: + type: string + description: URL of the avatar image of the member. + account: + $ref: '#/components/schemas/Account' Page: type: object description: 'Contains information about the current page, and total elements to be retrieved' @@ -633,6 +670,122 @@ components: createdBy: userId: string fullName: string + ProjectResponse: + description: Project details + content: + application/json: + schema: + type: object + properties: + projectId: + $ref: '#/components/schemas/UUID' + name: + type: string + description: Name of the project. + maxLength: 200 + description: + type: string + description: Description of the project. + logo: + type: string + description: URL of the project image/logo. + createdOn: + type: string + description: Date and time in UTC when the project was created. + active: + type: boolean + description: Indicates whether a project is active or not. Inactive projects will only be returned to Mendix administrators. + createdBy: + type: object + description: Contains information about the person that created this project. + properties: + userId: + $ref: '#/components/schemas/UUID' + fullName: + type: string + description: Full name of the member. + maxLength: 200 + cloudProvider: + type: string + description: Cloud deployment provider (Public Mendix, Private Mendix, SAP, on-prem, etc) + enum: + - Mendix + - SAP + - STACKIT + - Mendix_for_Private_Cloud + targetCloud: + type: string + description: URL of the cloud portal the project is hosted on + members: + type: array + description: Array of members in the project. Inactive members will only be returned for Mendix Administrators + items: + allOf: + - $ref: '#/components/schemas/User' + - type: object + properties: + isActive: + type: boolean + description: Indicator of whether the member is active. + role: + type: object + description: Member role details + properties: + roleId: + $ref: '#/components/schemas/UUID' + roleName: + type: string + description: Role name + maxLength: 200 + technicalContact: + $ref: '#/components/schemas/User' + account: + $ref: '#/components/schemas/Account' + examples: + Example 1: + value: + projectId: "123e4567-e89b-12d3-a456-426614174000" + name: "Example Project" + description: "An example project." + logo: "https://example.com/logo.png" + createdOn: "2025-01-28T15:05:58Z" + active: true + createdBy: + userId: "123e4567-e89b-12d3-a456-426614174000" + fullName: "John Doe" + cloudProvider: "Mendix" + targetCloud: "https://cloud.example.com" + members: + - userId: "123e4567-e89b-12d3-a456-426614174001" + fullName: "John Doe" + avatarUrl: "https://example.com/avatar1.png" + account: + accountId: "123e4567-e89b-12d3-a456-426614174000" + accountName: "Example Account" + isActive: true + role: + roleId: "123e4567-e89b-12d3-a456-426614174005" + roleName: "Developer" + - userId: "123e4567-e89b-12d3-a456-426614174002" + fullName: "Jane Smith" + avatarUrl: "https://example.com/avatar2.png" + account: + accountId: "UUID" + accountName: "Example Account" + isActive: false + role: + roleId: "123e4567-e89b-12d3-a456-426614174009" + roleName: "Project Manager" + technicalContact: + userId: "123e4567-e89b-12d3-a456-426614174003" + fullName: "Technical Contact" + avatarUrl: "https://example.com/avatar3.png" + account: + accountId: "123e4567-e89b-12d3-a456-426614174004" + accountName: "Example Account" + account: + accountId: "123e4567-e89b-12d3-a456-426614174004" + accountName: "Example Account" ProjectMembersResponse: description: List of project members content: @@ -1079,4 +1232,4 @@ components: hasMonitoringAccess: false hasApiRights: false security: - - PersonalAccessToken: [] \ No newline at end of file + - PersonalAccessToken: []