diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b8d7fd..c786130 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Flexisip Account Manager Changelog +v2.1 +---- +- Fix FLEXIAPI-282 Migrate to Laravel 11 and PHP 8.2+ + v2.0 ---- - Fix FLEXIAPI-205 Remove the deprecated endpoints, compatibility code documentation and tests. Drop the confirmation_key accounts column and activation_expirations table @@ -70,6 +74,7 @@ v2.0 - Fix FLEXIAPI-312 Add Redis publish event when updating the externalAccount to ping the Flexisip B2BUA - Fix FLEXIAPI-363 Send the Redis publish event when the externalAccount is deleted to ping the Flexisip B2BUA - Fix FLEXIAPI-364 Fix a faulty redirection in the ExternalAccount controller +- Fix FLEXIAPI-361 Prepare the 2.0 release v1.6 ---- diff --git a/README.md b/README.md index 2f2ce04..aade4cf 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Flexisip is dual licensed, and can be licensed and distributed: # Documentation -Once deployed you can have access to the global and API documentation on the `/api` and `/documentation` pages. +Once deployed you can have access to the global and API documentation on the `/api` and `/provisioning/documentation` pages. # Setup @@ -25,7 +25,6 @@ Check the [INSTALL.md](INSTALL.md) and [CHANGELOG.md](CHANGELOG.md) files. ## Usage -For the web panel, a general documentation is available under the `/documentation` page. For the REST API, the `/api` page contains all the required documentation to authenticate and request the API. FlexiAPI is also providing endpoints to provision Liblinphone powered devices. You can find more documentation about it on the `/provisioning/documentation` documentation page. @@ -41,7 +40,7 @@ Create or update a Space, required to then create accounts afterward. The `super ### Import the old DotEnv instance configuration into a Space -Since 1.7 some environnement instance configuration variables were moved into the Space configuration, you can import them using this command. +Since 2.0 some environnement instance configuration variables were moved into the Space configuration, you can import them using this command. php artisan spaces:import-configuration-from-dot-env {sip_domain} diff --git a/RELEASE.md b/RELEASE.md index 07c98b7..6d5e0ff 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -12,6 +12,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). - **New mandatory DotEnv variable** `APP_ROOT_HOST`, replaces `APP_URL` and `APP_SIP_DOMAIN` that are now configured using the new dedicated Artisan script. It defines the root hostname where all the Spaces will be configured. All the Spaces will be as subdomains of `APP_ROOT_HOST` except one that can be equal to `APP_ROOT_HOST`. Example: if `APP_ROOT_HOST=myhost.com` the Spaces hosts will be `myhost.com`, `alpha.myhost.com` , `beta.myhost.com`... - **New DotEnv variable:** `APP_ACCOUNT_RECOVERY_TOKEN_EXPIRATION_MINUTES=0` Number of minutes before expiring the recovery tokens - **New Artisan script** `php artisan spaces:create-update {sip_domain} {host} {name} {--super}`, replaces `php artisan sip_domains:create-update {sip_domain} {--super}`. Can create a Space or update a Space Host base on its Space SIP Domain. +- **Push Notification endpoint** Add a /push-notification endpoint to send custom push notifications to the Flexisip Pusher +- **Add internationalisation support in the app** The web panels are now available in French and English +- **Add External Accounts** In the API and web panels, allowing users to setup an external account that can be used in another service like the B2BUA +- **Add configurable admin API Keys** Allowing admins to setup non-expiring services API Keys +- **Add provisioning email** A user can now receive a custom generated email with all the provisioning related information +- **Add API endpoints to send the password reset and provisioning emails** +- **Add an app setup wizard page** Static web page inviting the users to download the app if it is not installed yet ### Changed @@ -31,6 +38,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). - ACCOUNT_PROVISIONING_RC_FILE - ACCOUNT_PROVISIONING_OVERWRITE_ALL - ACCOUNT_PROVISIONING_USE_X_LINPHONE_PROVISIONING_HEADER +- **Complete and reorganize the Markdown documentation** +- **Refactor the emails templates** All the emails were modernized and are now generated in HTML + +### Removed + +- **Remove the deprecated endpoints** The endpoints inherited from XMLRPC are now completely removed ### Migrate from [1.6] @@ -73,19 +86,27 @@ php artisan spaces:import-configuration-from-dot-env {sip_domain} You can find more details regarding those steps in the [`INSTALL.md`](INSTALL.md) and [`README.md`](README.md) files. -### Deprecated - -- **Last major version supporting the deprecated endpoints of the API** ## [1.6] - 2024-12-30 ### Added -- **Phone validation** Phone numbers are now strictly validated and countries can be enabled disabled to prevent spam -- **SIP Domains** Account SIP domains can now be managed from the UI and API -- **CoTURN Credential** Get CoTURN credentials from the API +- **Allow the expiration of tokens and codes in the DotEnv configuration** + - **New DotEnv variables:** check all the new `*_EXPIRATION_MINUTES` for each token and code in `.env.example` +- **Phone validation system by country code:** all the provided phone numbers are now properly validated and some countries can be forbidden +- **SIP Domain management:** the account domains are now managed in a set of panels and API endpoints, this is the base of the upcoming space administration system +- **JSON validation in the API:** the provised JSON is now validated and returns an error if an issue is detected +- **CoTURN credentials support:** TURN credentials can now be generated and return through the provisioning feature - **RFC 8898 Support** +## Changed + +- **Replace Material Icons with Phosphor** + +## Deprecated + +- **Last major version supporting the deprecated endpoints of the API** + ### Migrate from [1.5] Nothing specific to do diff --git a/flexiapi/.env.example b/flexiapi/.env.example index d2426b4..3b13ab9 100644 --- a/flexiapi/.env.example +++ b/flexiapi/.env.example @@ -13,11 +13,6 @@ TERMS_OF_USE_URL= # A URL pointing to the Terms of Use PRIVACY_POLICY_URL= # A URL pointing to the Privacy Policy APP_PROJECT_URL= # A URL pointing to the project information page -LOG_CHANNEL=stack - -# Risky toggles -APP_DANGEROUS_ENDPOINTS=false # Enable some dangerous endpoints used for XMLRPC like fallback usage - # Expiration time for tokens and code, in minutes, 0 means no expiration APP_API_ACCOUNT_CREATION_TOKEN_RETRY_MINUTES=60 # Number of minutes between two consecutive account_creation_token creation APP_ACCOUNT_CREATION_TOKEN_EXPIRATION_MINUTES=0 @@ -63,6 +58,7 @@ REDIS_DB= # Logs # Ensure that you have the proper SELinux configuration to write in the storage directory, see the README +LOG_CHANNEL=stack BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync diff --git a/flexiapi/public/css/form.css b/flexiapi/public/css/form.css index f95cc16..ee9713e 100644 --- a/flexiapi/public/css/form.css +++ b/flexiapi/public/css/form.css @@ -46,6 +46,7 @@ p .btn.oppose { pointer-events: none; } +.btn:focus-visible, .btn:hover { background-color: var(--main-6); border-color: var(--main-6); @@ -311,8 +312,8 @@ form div select:hover { border-color: var(--second-4); } -form div input:focus-visible, -form div input:active, +form div input:not(.btn):focus-visible, +form div input:not(.btn):active, form div textarea:focus-visible, form div textarea:active { color: var(--main-5);