v0.0.1-beta.1
Pre-release
Pre-release
·
13 commits
to master
since this release
What's Changed
- feat(services): install a service package, and create a service (T31a) by @haiquang9994 in #1
- feat(services): php-fpm pools, one per installed PHP (T32) by @haiquang9994 in #2
- ci(linux): let a run say what happened to the secret service by @haiquang9994 in #3
- feat(services): MariaDB as a service MixEngine runs (T33) by @haiquang9994 in #4
- feat(runtimes): PHP extensions through a generated conf.d set (T28) by @haiquang9994 in #5
- feat(services): PostgreSQL as a service MixEngine runs (T34, T34a) by @haiquang9994 in #6
- feat(services): MySQL, and the port allocator every service now shares (T34c) by @haiquang9994 in #7
- feat(services): two instances of one server, at two versions (T36) by @haiquang9994 in #8
- feat(services): nginx as the other front end, and the rule that there is one (T37) by @haiquang9994 in #9
- feat(projects): a directory the daemon knows about, and step 3 of the resolution order (T39) by @haiquang9994 in #10
- feat(sites): the site model, its four kinds, and the manifest halves that describe them (T39a) by @haiquang9994 in #11
- feat(elevate): the one-shot helper's frame, its file protocol, and Probe (T40) by @haiquang9994 in #12
- fix(elevate): re-assert the audit directory's permissions on every run (T40) by @haiquang9994 in #13
- feat(platform): the Elevation trait and its three OS launchers (T40a) by @haiquang9994 in #14
- feat(elevation): the elevation queue in the daemon (T40b) by @haiquang9994 in #15
- feat(elevation): read what is about to be allowed before allowing it (T64) by @haiquang9994 in #16
- feat(elevation): PrivilegedOp::HostsApply, and the first producer of the queue (T41) by @haiquang9994 in #17
- feat(platform): PortAccess — 80 and 443 without root (T42) by @haiquang9994 in #18
- feat(sites): a site somebody declared is a site the front end answers for (T43) by @haiquang9994 in #19
- test(services): put a number on M3, and gate the warm half of it by @haiquang9994 in #20
- feat(dns): a wildcard for every managed TLD, and the mode it does not switch on yet (T44) by @haiquang9994 in #21
- feat(dns): a machine that sends a managed name to MixEngine's own server (T45) by @haiquang9994 in #22
- feat(domains): what actually happens to a name, and the two verbs a client cannot compose (T46) by @haiquang9994 in #23
- docs(roadmap): M4 requires only what phase 4 builds, and T87 owns the dry run by @haiquang9994 in #24
- feat(doctor): nine checks, and the three shapes that keep them honest (T47a) by @haiquang9994 in #25
- test(services): a port test that asks about MixEngine and not about the runner (T34c) by @haiquang9994 in #26
- feat(doctor): daemon.doctor_repair, and the decision T64 reversed (T47b) by @haiquang9994 in #27
- feat(doctor): mix doctor --bundle, and the word the task did not need (T93) by @haiquang9994 in #28
- docs(roadmap): T41a needs a VM and not a certificate, so T94 takes the half that does by @haiquang9994 in #29
- feat(platform): tell an absent secret service from one that refused (T15b) by @haiquang9994 in #30
- feat(certs): the internal CA, and the identifier a certificate cannot carry about itself (T48) by @haiquang9994 in #31
- feat(certs): this machine's trust store on three systems, and the four things only a real one could answer (T49a) by @haiquang9994 in #32
- feat(platform): the NSS databases Firefox and Chrome read instead (T49b) by @haiquang9994 in #33
- feat(core): one leaf per site, and the fourth question tls.md did not ask (T50) by @haiquang9994 in #34
- feat(core): a site is served over TLS, and a front end binds a TLS port for the first time (T51) by @haiquang9994 in #35
- feat(daemon): a clock renews certificates, and the outcome that gave two answers one name (T52) by @haiquang9994 in #36
- feat(cli): mix cert status, measured against a live handshake (T53) by @haiquang9994 in #37
- feat(cli): cert ca-rotate and ca-uninstall (T54) by @haiquang9994 in #38
- feat(platform): ResourceLimits per OS (T68) by @haiquang9994 in #39
- feat(daemon): stop a service nothing is using (T69) by @haiquang9994 in #40
- fix(platform): verify who is serving the named pipe before sending by @haiquang9994 in #41
- ci(test): run the connections suite the workflow never called by @haiquang9994 in #42
- ci(system): open the MIXENGINE_SYSTEM_TESTS gate nothing set by @haiquang9994 in #43
- ci(test): fail the Linux leg when a real-server package is missing by @haiquang9994 in #44
- perf(daemon): take a blocking removal off the worker thread by @haiquang9994 in #45
- refactor(daemon): give SpecSource a typed error (R8) by @haiquang9994 in #46
- chore(deps): make a duplicate version a decision somebody wrote down (R9) by @haiquang9994 in #47
- test(supervisor): assert the retry a command ready check exists for (R13) by @haiquang9994 in #48
- test(proto): gate the rule that per-OS code lives in platform (R14) by @haiquang9994 in #49
- fix(generate): give each render a staging directory of its own (R17) by @haiquang9994 in #50
- chore(deps): move off a yanked chacha20 and fail on the next one (R18) by @haiquang9994 in #51
- test(bench): print MariaDB's own log when a warm round misses the budget (R19) by @haiquang9994 in #52
- feat(supervisor): hand over the tail with the subscription so first lines survive (T16c) by @haiquang9994 in #53
- feat(core): start a service from the connection that needed it (T70) by @haiquang9994 in #54
- feat(daemon): start a database from the connection that needed it (T70a) by @haiquang9994 in #55
- feat(metrics): sample what is running, and keep a day of it (T71) by @haiquang9994 in #56
- feat(daemon): warn and restart a service over a memory ceiling this machine cannot enforce (T71a) by @haiquang9994 in #57
- test(bench): gate what MixEngine costs when nobody is using it (T72) by @haiquang9994 in #58
- feat(core): give a pool on a socket the probe that lets it sleep and wake (T72a) by @haiquang9994 in #59
- perf(core): dev-tuned defaults across the service templates (T73) by @haiquang9994 in #60
- feat(core): LAN sharing, per site and reversible (T74) by @haiquang9994 in #61
- chore(repo): follow the transfer to the mixnz organisation by @haiquang9994 in #62
- feat(core): mDNS, the name in the certificate, and the CA a phone can install (T75) by @haiquang9994 in #63
- feat(core): revoking a share by itself (T76) by @haiquang9994 in #64
- feat(core): the blueprint manifest, capture, and the plan an apply would carry out (T77) by @haiquang9994 in #65
- feat(core): creating a database and the account that reaches it (T77a) by @haiquang9994 in #66
- feat(core): executing a blueprint plan (T78) by @haiquang9994 in #67
- feat(core): running a blueprint's own command, and trusting it (T78a) by @haiquang9994 in #68
- feat(blueprints): the built-in gallery (T79) by @haiquang9994 in #69
- feat(blueprints): publishing the gallery as signed files (T79a) by @haiquang9994 in #70
- feat(blueprints): saying why a blueprint is untrusted (T79b) by @haiquang9994 in #71
- feat(extensions): the extension model (T80) by @haiquang9994 in #72
- feat(extensions): the extension registry and lifecycle (T81) by @haiquang9994 in #73
- feat(extensions): publishing the extension registry (T81a) by @haiquang9994 in #74
- fix(cli): an empty registry is not a build too old by @haiquang9994 in #75
- feat(extensions): the site a web-app is served on (T81b) by @haiquang9994 in #76
- feat(extensions): wire [recipe] front_end fragments (T81c) by @haiquang9994 in #77
- feat(extensions): the first three extensions (T82) by @haiquang9994 in #78
- feat(extensions): a php-fpm pool of the extension's own (T82a) by @haiquang9994 in #79
- feat(extensions): MixDB connection handoff (T83) by @haiquang9994 in #80
- feat(extensions): MixDB in the registry and one keyring (T84) by @haiquang9994 in #81
- feat(packaging): install the privileged helper and ship per-OS installers (T85) by @haiquang9994 in #82
- feat(packaging): the second architecture (T85a) by @haiquang9994 in #83
- feat(autostart): register the daemon's autostart entry (T85b) by @haiquang9994 in #84
- feat(updates): the updater signing key and its CI pipeline (T86) by @haiquang9994 in #85
- feat(packaging): measure what an unsigned release shows SmartScreen and Gatekeeper by @haiquang9994 in #86
- feat(uninstall): complete uninstall path, and a clean-VM smoke test (T87) by @haiquang9994 in #87
- feat(platform): answer whether a certificate repairs Smart App Control (T94) by @haiquang9994 in #88
- feat(updates): mix self-update (T88) by @haiquang9994 in #89
- fix(packaging): ship mixengine-shim in every artifact (T85c) by @haiquang9994 in #90
- feat(elevate): the privileged helper's own update path (T88a) by @haiquang9994 in #91
- fix(proto): one rule for a growing DaemonStatus (T88c) by @haiquang9994 in #92
- feat(proto): publish the API contract (T56) by @haiquang9994 in #94
- feat(daemon): crash reporting that is recorded by default and sent by nothing (T91) by @haiquang9994 in #96
- feat(index): the six-target matrix, and the target with nothing on it (T92) by @haiquang9994 in #97
Full Changelog: https://github.com/mixnz/mixengine/commits/v0.0.1-beta.1