Skip to content

ddcore 0.16 ​

0.16.0 — 2026-09-22 ​

Breaking ​

  • The superuser is now Admin instead of Administrator. A new database gets Admin, and on an existing one the next ddcore migrate renames the user in place, with its roles, sessions, tokens, audit entries, owner/modified_by columns and every Link to it. Sign in as Admin with the same password. App code that names the user — c.User == "Administrator", a test that signs in as it, a fixture that links to it — must say Admin. The rename is skipped when both users already exist.

Added ​

  • ddcore migrate gives Admin a generated 10-character password (lowercase, uppercase, digit and symbol; longer when auth.minPasswordLength asks for more) when it has none, which is what a first install leaves, and prints it once to stderr. dev/start --auto-migrate and restore print it the same way, and the MCP migrate tool returns it as adminPassword. Only the hash is kept, and a password Admin already has is never replaced. The step ddcore user passwd Admin <password> is no longer needed to sign in the first time.
  • defineListView(doctype, { nameColumn: false }) hides the leading document-name column of a list, for a DocType whose name means nothing to a reader, such as a hash. The row stays clickable. The default is unchanged. (#7)
  • nameLabel on a DocType names its identifier: nameLabel: "Contract No." heads the list's name column instead of "Name", and labels the name when it is prompted for or renamed. It is a catalogue key, so ddcore i18n extract collects it and an extension may override it. It changes display only: filters, orderBy and the API still say name. (#7)

Changed ​

  • When a list has no name column, the title field's cell links to the document, so it can be opened in a new tab.

MIT Licensed · ddcore (Data Driven Core) · Development documentation (main)