Skip to content

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 30 Oct 11:27
· 1 commit to main since this release

openglacier Core v2.0.1 — antaa palaa

Formulas in imports, a Fabric that welcomes every node, and a lighter build.


Highlights

  • Import formulas are expressions of the language: ht - pam, but also if, substr, concat, dates.
  • Every Core can join the Fabric with an identity issued by the Authority, not only the one that enrolled
    the Gateway.
  • Mail through Microsoft 365 and other servers that do not offer AUTH PLAIN.
  • ogd --version and --help answer instead of starting a daemon.
  • Fewer dependencies: the default build goes from 124 crates to 70, with no known vulnerability.

Import

  • A calculated column of a mapping may be an expression of OGML
    ({"type": "formula", "target", "expression", "transform"}); the sums of signed terms stay accepted.
    • The expression is parsed once: one that does not parse stops the import (formula of <target>: …).
    • Columns are read under their own name, or, when it is not a name of the language, lower case without accents
      and _ for the rest (Code article → code_article, 2025 → _2025).
    • A cell that reads as a number is a number (1 234,50, (10)), but a code written with leading zeros stays
      text (01, 010178); a workbook date is its epoch milliseconds.
    • The result is converted as the target field is (month, date, datetime, text under its format). A row where the
      expression fails gets null and a warning; the import goes on.
    • The Python worker refuses expressions with a clear message: use the native worker (native-import).
  • data.mapping.save replaces the active mapping of the same format and table (state: "replaced"), and
    data.analyze returns the newest mappings first: a format mapped again is recognised with its last mapping.

Fabric

  • A Core joining the Fabric with an identity issued by the Authority accepts the enrolled Gateway. It used to
    look the Gateway's Device up in its own store, where only the Core that enrolled it holds it, and refused it in a
    loop. A Core that does not know the Gateway now keeps it once it proves its key, and refuses another key or a
    revoked Device afterwards; a Core without a store checks the key at each connection.
  • The node channels run on websockets of the Core's own (RFC 6455, TLS by rustls with the webpki roots as
    before) instead of tungstenite. Nothing changes on the wire: same handshake, same limits (64 MiB a message,
    16 MiB a frame), pings answered and closes echoed. Tested through the Gateway with a 1 GB file both ways, byte for
    byte.

Mail

AUTH is negotiated from the server's EHLO reply (the one after STARTTLS): PLAIN when offered, else LOGIN
(inside TLS), else a clear mail.auth error naming what the server offers (XOAUTH2 only, or no AUTH at all).


ogd, glacierdb and ogcli

  • ogd and glacierdb answer --version (-V, -v, version) with their version and code name and --help
    (-h, -?, help) with their commands, and refuse any other argument (exit code 2). They used to start a
    daemon in the current directory, which could write its bootstrap/admin.ogid there.
  • data-worker is accepted only by builds with native-import.
  • The terminal workspace of ogcli --tui is drawn with crossterm alone; keys and behaviour are unchanged.

Builds

Build Crates in 2.0.0 Crates in 2.0.1
default 124 70
cli-tui 124 85
full 164 156

Distinct crates and versions of the normal dependencies on Linux (cargo tree -e normal), the Core included.

  • search-documents leaves the default build and stays in full: the default ogd searches values, files by
    path, plain text files and Apps, but no longer reads the text of PDF and office documents. Build with
    --features search-documents, or use og-core-full, to keep it.
  • ratatui and tungstenite are no longer dependencies. The text of PDF files is read by lopdf 0.46 itself instead
    of pdf-extract, which held lopdf at 0.42 and its unmaintained font parser ttf-parser (RUSTSEC-2026-0192).

Security

zstd 0.14.3 (zstd-safe 8.2) for RUSTSEC-2026-0391, -0398 and -0403 and the unsound advisories of
zstd-safe 7. sha1 0.11. ttf-parser (unmaintained, RUSTSEC-2026-0192) is gone with pdf-extract, and
clipboard-win 5.4.1, yanked, is now 5.4.3. cargo audit reports neither vulnerability nor warning.


Upgrading from 2.0.0

Replace the binaries; stores, backups, identities and Apps stay as they are. Two things to check:

  • if you rely on the text of PDF and office documents in place.search, run og-core-full or a build with
    search-documents;
  • mappings that use formula expressions need the native data worker (the default when native-import is
    compiled).

Full Changelog: v2.0.0...v2.0.1

Small core, long life.