Content
View differences
Updated by Marc Alcobé 1 day ago
### User Story
**As a** returning mobile app user **As** a \[enter role of user\]
**I want** the login screen to remember the last instance URL I used want to** \[enter objective\]
**so that** I can log in faster without re-entering or searching for the URL \[enter desired result\]
### Acceptance Criteria **Acceptance criteria**
* When the user successfully logs in to an OpenProject instance, the app persists the **instance base URL** used for that login
<br>
**Technical notes**
* When the login screen is opened again, the **instance URL input field is pre-filled** with the last successfully used URL
* The pre-filled URL is editable, <br>
**Permissions and users can overwrite it
visibility considerations**
* If the user edits the URL and proceeds to log in successfully, the stored “last used URL” _To whom is updated to the newly used URL this feature visible?_
* The “last used URL” _When is stored **per device**, and persists across app restarts
* The “last used URL” is it not cleared by navigating back within the login flow
visible?_
**Translation considerations**
* Logging out does not remove the stored “last used URL”, unless the user explicitly clears app data or resets settings
* If the stored URL is invalid (cannot be parsed as a URL) or is empty, the URL field is shown empty _Key terms and no invalid value is displayed
* The app supports multiple previously used URLs via a dropdown list, that list remains available, but the last used URL is the default value shown phrases in the input field key languages_
### 3\. Technical Notes
* **Assumptions**
* The login screen has an instance URL input with optional dropdown history.
* “Last used URL” should reflect the last **successful** login, not merely typed values.
* **Persistence**
* Store a single string value: `lastUsedInstanceUrl`
* iOS: Key-value storage (for example UserDefaults) or existing preferences layer
* Android: SharedPreferences (or existing preferences layer)
* **Normalisation**
* Normalise before storing to reduce duplicates (assumption):
* Trim whitespace
* Ensure scheme is present (`https://` default if missing) or preserve existing behavior
* Remove trailing slash (or follow current canonicalisation rules if they exist)
* **Security**
* Only store the instance base URL, not usernames, passwords, access tokens, or OAuth refresh tokens in this preference key
* **Edge cases**
* App fresh install: field is empty until first successful login
* If the user clears app data: last used URL is removed as a side effect **Out of OS/app behavior
### Permissions and Visibility Considerations scope**
* All users can see and edit the instance URL field on the login screen
* If the login flow is configured by policy (for example, the instance URL is locked like PMflex), the field should not <br>
_Set the_ **To be visible at all, only the login button
### Translation Considerations
* No translation strings needed
### Out informed/consulted teams** _field to include all teams necessary to be informed of Scope
* Syncing the last used URL across devices
* Remembering user credentials or automatically logging in
* UI redesign of the login screen beyond pre-filling the existing URL input field changes._
**As a** returning mobile app user
**I want** the login screen to remember the last instance URL I used
**so that** I can log in faster without re-entering or searching for the URL
### Acceptance Criteria
* When the user successfully logs in to an OpenProject instance, the app persists the **instance base URL** used for that login
**Technical notes**
* The pre-filled URL is editable,
**Permissions
* The “last used URL”
* The “last used URL” is
**Translation considerations**
* If the stored URL is invalid (cannot be parsed as a URL) or is empty, the URL field is shown empty
* The app supports multiple previously used URLs via a dropdown list, that list remains available, but the last used URL is the default value shown
### 3\. Technical Notes
* **Assumptions**
* The login screen has an instance URL input with optional dropdown history.
* “Last used URL” should reflect the last **successful** login, not merely typed values.
* **Persistence**
* Store a single string value: `lastUsedInstanceUrl`
* iOS: Key-value storage (for example UserDefaults) or existing preferences layer
* Android: SharedPreferences (or existing preferences layer)
* **Normalisation**
* Normalise before storing to reduce duplicates (assumption):
* Trim whitespace
* Ensure scheme is present (`https://` default if missing) or preserve existing behavior
* Remove trailing slash (or follow current canonicalisation rules if they exist)
* **Security**
* Only store the instance base URL, not usernames, passwords, access tokens, or OAuth refresh tokens in this preference key
* **Edge cases**
* App fresh install: field is empty until first successful login
* If the user clears app data: last used URL is removed as a side effect
### Permissions and Visibility Considerations
* All users can see and edit the instance URL field on the login screen
* If the login flow is configured by policy (for example, the instance URL is locked like PMflex), the field should not
_Set the_ **To
### Translation Considerations
* No translation strings needed
### Out
* Syncing the last used URL across devices
* Remembering user credentials or automatically logging in
* UI redesign of the login screen beyond pre-filling the existing URL input field