Changelog
ZeyOS Release Notes
Stay up to date with the latest features and improvements
Latest Releases
v1.04-30
ZeyOS 1.04-30 released
- Allow user to issue API tokens via my credentials
- Add API tokens for unrestricted API access
- Add API permission for unrestricted API access
- Add predefined "API Access" group
- Add cleanup trigger for obsolete changes
- Support generic message notice on login
- Auto-generate iXML DTD in public docs
v1.04-28
PERSISTENCE LAYERZYMBA
ZeyOS 1.04-28 released
iXML
PERSISTENCE LAYER
- Introduce DB table "changes"
- Record all changes (incl. extdata+tags) of main entities
- Bind extdata and tags to entity object state in persistence layer
- Merge session-level objects with base objects
- Also enforce consistency for existing extdata and tags on modification/deletion
- Add variables `OLD_EXDATA` and `OLD_TAGS` to on deletion service trigger
- Add variables `NEW_EXTDATA` and `NEW_TAGS` to on creation service trigger
- Add variables `MOD`, `MOD_EXTDATA` and `MOD_TAGS_ADD` to on creation service trigger for upsert
- Add variables `OLD_EXTDATA`, `OLD_TAGS`, `NEW_EXTDATA`, `NEW_TAGS`, `MOD_EXTDATA`, `MOD_TAGS_ADD`, `MOD_TAGS_REMOVE` to on modification service trigger
- Use random transaction/commit id for bulk changes via SDK
- Add `snapshots_create` utility command
- Support generic message notice on login
- Remove obsolete DB tables "documentversions" and "enhancementversions"
- Remove versions (for now) from enhancements and documents
- Also record monitor fields on creation
- Move persistent login token from users table to tokens table
- Reissue persistent login token on each persistent login
- No longer double count binfiles with same ID in one field in statistics
ZYMBA
- Rename `@ZeyOS.Object.load()` to `reload()`
- Rename `@ZeyOS.ObjectUser.hasAccess()` to `hasAccessTo()`
- Add `@ZeyOS.Object.hasAccess()`
- Add `@ZeyOS.Object.listExtData()` and `setExtData()`
- Add `@ZeyOS.Object.listTags()`, `addTags()`, `removeTags()` and `resetTags()`
- Add `@ZeyOS.ObjectTransaction.fromEinvoice()` and `toEinvoice()`
- Remove `@ZeyOS.getSessionVariable()`
- Remove prefix parameter from `@ZeyOS.ExtData.setFields()` and `@ZeyOS.Object.setFields()`
- Add `@Mail.Message.countHeaders()`, `listHeaderNames()` and `removeHeaders()`
- Add `@HTTP.countRequestHeaders()`, `countResponseHeaders()`, `listRequestHeaderNames()`, `listResponseHeaderNames()` and `removeHeaders()`
- Remove `@Base.hasSlot()` and `setSlots()`
- Auto-generate iXML DTD in public docs
- Add parameters "var_extdata" and "var_tags" to `<db:get>`
v1.04-27
ZeyOS 1.04-27 released
- Use devices as base entity in serials/charges tab of item details
- Add `<custombox>` to iXML for forms based on custom fields
- Support all generic types in ixml `<textbox>`
- Support negative quantites in line items
- Support negative quantites in components
- Add "extdatamonitor" config setting
- Add `GET /sdk/v1/apps` endpoint to SDK API
- Allow login token in `/oauth2/v1/userinfo`
- Falsify `NaN` in Zymba
- Clamp to min/maxint on cast from float to int in Zymba
v1.04-25
ZeyOS 1.04-25 released
- Auto-include namespaces in Zymba
- Use allowance for coupons in X-Rechnung
- No longer cleanup entity-specific records as those should be retained
- Allow editing users even if invalidly signed; only block login and warn in details
- Add binfile integrity check that implicitly tests all remote storages
- Add "trust" environment setting to ignore user signatures
- Replace "nocron" environment setting with "mirror"
- Add "preservecase" option to `<xml:parse>` in iXML
- Add "preservecase" option to XML parsing in Zymba
- Add `@String.escapeC()`
- Add `@Var.toSource()`
v1.04-24
ZeyOS 1.04-24 released
- Have backup use remote storage box if available (with local fallback)
- Only clean-up binfiles via trigger file (`/data/.trigger-cleanup-binfiles`)
- Add "bin_nostore" environment setting to temporarily disable binfile replication
- Always send `Last-Modified` header in REST API
- Support `If-Unmodified-Since` (PATCH/DELETE) and `If-Modified-Since` (HEAD/GET) in REST API
- Re-interpret `@IO.isRegularFile()`, add `@IO.isFile()` and `@IO.isRegularDirectory()`
- Refactor extdata/tags DB functions for correctness, simplification and lock-friendliness
Page 1 of 34