diff --git a/CHANGELOG.md b/CHANGELOG.md index 7614f3cf5..bb8acec62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,8 @@ Update from Maintenance > Update — Update ITFlow hands the job to cron, which - Export Data: the documentation PDF can go out as a secure link, like a login, document or file. Share a link next to Download PDF - or Share the IT documentation on a client's Shared Links - makes the PDF from the parts you tick and gives you a link that works for as long and as many times as you set, with a passphrase or an emailed code first if you like, and tells you when it's downloaded. The PDF is made when the link is, so later changes aren't in it, and it's kept encrypted until the link stops working - then it's deleted. With passwords and 2FA secrets in it, the PDF is locked with a password of its own too, as a download is, and the page the link opens says so. - Maintenance > Update is easier to follow. It opens with where your install stands - up to date, an update available, an update running, or the database still to finish - and the one button for it, now Update ITFlow instead of Queue Update. Below it is what's new: the release notes for the versions between yours and the latest, read from the changelog each time ITFlow checks for updates, with the developer notes folded away and the commits behind them a click further. Before you update it lists what to do first, and says whether any of ITFlow's own files have been changed on your install, which updating would put back. Once you click Update ITFlow, the page shows the update running, refreshes itself until it's done, and then says when ITFlow was updated, or what stopped it. Alongside are this install's version, branch, database, when it last checked and updated, whether cron is running, and the command to run the same update from a shell, with the folder and user filled in for your server. - Cron: a new install starts with cron switched on, so adding the cron job is the only step - in the crontab, or as a cron job that runs every minute in a hosting control panel such as Jabali, HestiaCP or cPanel - and jobs start as soon as it runs. Before, cron also had to be turned on in Maintenance > Cron, and an install that missed that step ran nothing without saying why. Get started's cron step is now just the cron job, with Turn cron on shown only if someone has switched it off. An install updated to this release keeps the setting it has. +- Managed mode: setting up an install you host and connecting it is now one command. After Add Instance - which now takes the address it will have - its page gives the command for setting up from the command line, with the connection code and what your ITFlow knows of the client: its company name, address, phone, website, tax ID and currency, and its primary contact as the first admin. Run it in the new install's folder and it asks only for the database and anything it couldn't fill in, makes the first admin's password and shows it once, connects the install and keeps it connected so its admins can't disconnect it. What's left is its cron job, which it shows as a hosting control panel asks for it - every minute, and the command with the full path of PHP. Until that runs, Managed Instances shows the install as Waiting for its cron job, with the command to add, rather than saying it stopped checking in. +- Setup from the command line: new options. `--ask-missing` asks only for what's needed and wasn't given, and the database password. `--generate-password` makes the account's password and shows it once. `--json` ends with a summary for a script to read. `--manager-code` and `--manager-required` connect the install to the ITFlow that manages it. Any option can come from the environment instead, as `ITFLOW_SETUP_PASSWORD` for `--password`, so passwords needn't be on the command line. The cron job it shows at the end uses the full path of the PHP that ran setup, which on a hosting control panel with several PHP versions is often not the one `php` runs. ### Bug Fixes @@ -50,6 +52,8 @@ Update from Maintenance > Update — Update ITFlow hands the job to cron, which ### Developer Updates +- `scripts/setup_cli.php`: `--manager-code` is checked with `managedParseCode()` before anything is done; after setup, `$config_manager_required = true;` (with `--manager-required`) or `$config_enable_managed_by = true;` is appended to `config.php` and set in the process, then `managedEnroll()` connects it after `setupClose()`, so a manager that can't be reached leaves a whole install behind - exit code 3 rather than 1. `--ask-missing` makes `cliAsk()` ask only a required field with no default, or a secret; `ITFLOW_SETUP_