# Sign-in for installed apps, and private emergency contacts

Desktop and command-line apps sign in with OAuth, /me returns the user a token acts as, work items move to the board or the backlog, and emergency contacts are private to each employee.

## REST API

- **Breaking:** An employee's emergency contacts are only visible to and writable by that employee, and you can only add emergency contacts for yourself. Integrations that read other employees' emergency contacts no longer get them. See [Contact](https://developers.plnnrly.com/en/docs/api/v2/schemas/contact/).
- **New:** Desktop and command-line apps that other people install can sign them in with OAuth, using the authorization code flow with PKCE. The app registers itself and can never delete through the REST API. See [Sign in with OAuth](https://developers.plnnrly.com/en/docs/api/v2/guides/oauth-apps/).
- **New:** **Connected apps** under **API access** in the user menu lists the apps you signed in to the REST API, and **Revoke** ends their access. **Disconnect** in the **AI** panel ends only an app's AI connection. When one sign-in gave an app both, either one ends both. See [Disconnect an app](https://developers.plnnrly.com/en/docs/mcp/#disconnect-an-app).
- **New:** [GET /me](https://developers.plnnrly.com/en/docs/api/v2/me/get/) returns the user the token acts as.
- **New:** [POST /work-items/{work_item}/actions/move](https://developers.plnnrly.com/en/docs/api/v2/work-items/move/) places a work item on the board or in the backlog, the way dragging it in plnnrly does.
- **New:** Projects and work items have a `web_url` that opens them in plnnrly. See the [Project](https://developers.plnnrly.com/en/docs/api/v2/schemas/project/) and [Work item](https://developers.plnnrly.com/en/docs/api/v2/schemas/work-item/) schemas.
- **Changed:** Adding, changing or deleting an invoice line without the **Finalise sales invoices** permission sends the invoice back to **Pending approval**, as editing the invoice does. See [PATCH /sales-invoice-rows/{sales_invoice_row}](https://developers.plnnrly.com/en/docs/api/v2/sales-invoice-rows/update/).
- **Fixed:** The OpenAPI document now describes the request body of [POST /work-items/{work_item}/actions/transition](https://developers.plnnrly.com/en/docs/api/v2/work-items/transition/) and [POST /sprints/{sprint}/actions/complete](https://developers.plnnrly.com/en/docs/api/v2/sprints/complete/), so generated clients can send it.
