Tags give the ability to mark specific points in history as being important
-
1.0.0a4
0658eb72 · ·## Release Notes — since 1.0.0a3 ### New features - **Skills bundle for AI assistants** — collection of compact, LLM-optimised skill descriptions for every public ECM operation. Auto-loaded by Claude Code / Cline / Cursor via description-based invocation. Downloadable as `/skills.zip` from the docs site. - **`ecm.security` user lifecycle** — `create_user()`, `update_user()`, `delete_user()`, `add_user_to_group()`, `remove_user_from_group()`, plus full sync + async coverage and DE/EN documentation. - **`ecm.security.export_security_system()`** — typed `ECMSecuritySystemExport` wrapping `mng.ExportSecuritySystem`. Group-level security clauses are mapped to their object rights; `ECMObjectRight` (R/W/D/X/U) and `ECMAnnotationRight` (G/P) are decoded as `IntFlag`. - **`ecm.system.info()`** — process-local snapshot of pool connection stats and auto-fetched server info. No RPC; cheap to call from dashboards or health checks. - **Pool connection statistics** — `pool.connection_stats()` returns a `list[ConnectionStats]` (host, port, server_info, connected_at, last_call_at, call_count, stable `connection_id`). - **`RpcServerInfo`** — fetched once per pool connection from `krn.GetServerInfoEx` and exposed on `RpcConnection.server_info`. Tolerant parser: partial server responses never break the connection. - **Coverage in CI** — every `unittests` run now emits Cobertura + JUnit reports and feeds the GitLab coverage badge. ### Improvements - **Codebase-wide docstring refactor** — Google-style docstrings (Args/Returns/Raises/Example) across the public API and across the test suite. - **`pyproject.toml` cleanup** — removed dead `[tool.uv.workspace]` / `[tool.uv.sources]` declarations, dropped redundant `setuptools-scm` and unused `pytest-xdist` from dev extras, added `pyright`. The `TcpClient` extra alias is kept and now documented as a backwards-compatibility shim. - **`.gitlab-ci.yml` overhaul** — shared `default.before_script` with `uv sync --frozen` (lockfile drift now fails the pipeline); `build_docs` moved into the `build` stage and now zips `skills/ecmind-blue-client` into `public/skills.zip`; `deploy_pypi_alpha` renamed to `deploy_pypi_prerelease` (regex covers `a`/`b`/`rc`); redundant `when: always` removed from deploy rules. - **Documentation** — new "Skills for AI assistants" / "Skills für KI-Assistenten" section on the DE + EN index pages with direct download link. ### Fixed - **`uv build` regression** introduced by the dev-extra cleanup — `--no-build-isolation` dropped from the `build` job so build dependencies come from `[build-system].requires` again. - Test assertions aligned with current behaviour for XML self-closing tags and SQL-quote escaping.
-
1.0.0a3
b118f9d5 · ·## Release Notes — since 1.0.0a2 ### New features - **Document variants** (dc79def) — `ecm.dms.insert_variant(...)` and `insert_variant_and_get(...)` (sync + async) for creating new variants of an existing document. The internal XML builder gained a `variant_parent_id` parameter; the variant inherits `folder_id`/`register_id` from its parent. New docs: `insert_variant`, `insert_variant_and_get`. - **Generic model from type name** (f104f2c) — `ecm.dms.model_by_name("…")` resolves an internal object-type name via `ecm.system.definition()` and returns the matching dynamic subclass (`ECMFolderModel` / `ECMRegisterModel` / `ECMDocumentModel`). Usable directly in `select(...)`. New doc: `model_by_name`. - **Default system fields inherited** (24beaaf) — `ECMRegisterModel` and `ECMDocumentModel` now append their specific `SystemFields` to `_ECMModelBase._ecm_system_fields_` instead of overriding them. Breaking for code that relied on the base fields being absent. ### Improvements - **`tcp` extra is optional again** (68fad5f) — `Client`, `Job`, `Param`, `QueryConditionField`, `QueryConditionGroup`, `QueryResultField` are lazily re-exported in `ecmind_blue_client/__init__.py` via PEP 562 `__getattr__`. The ECM abstraction (`SyncPoolClient` / `AsyncPoolClient`) can now be used without installing `XmlElement`. - **Pyright config** (94736bc) — `build`, `dist`, `__pycache__`, `.venv` excluded from the scan. ### Cleanup - **Expanded tests** — new suites for variants (`test_ecm_dms_variant_sync/async/unit.py`) and `model_by_name` (`test_ecm_model_sync/async.py`); minor cleanups in the async DMS tests. -
1.0.0a2
1c880159 · ·## Changelog since tag `1.0.0a1` ### New Features **DMS** - `std.GetDocumentStream` – partial reading of document file ranges (1c88015) - `dms.SetUserData` / `dms.GetUserData` – user-scoped data storage (86c37c1) - `dms.CheckOut`, `dms.UndoCheckOut`, `dms.CheckIn` including document history (693133d, b7da1e0) - `dms.CheckPermission` (3cc2bad) **Workflow (wfm)** - Full Workflow API added (e2fcdad) - Workflow organisations (1bcc01f) - `wfm.SetSubstitutes` (cbd138d) - `wfm.ConfigUserAbsence` (a7809df) - `wfm.SaveOrganisation` (d067fd8) **License & Kernel** - `lic.CheckLicense` and `lic.LicGetModuleInfo` (2c80f84) - `krn.RunScript` and `krn.EmptyJob` (78552c3) ### Improvements - Eliminated unnecessary `get_object_type_by_id` calls (f929ec4) - Tests optimised, manual unit tests added (84ab824, e3f637b) ### Documentation & Infrastructure - Model API documentation added (04372aa) - Docker container for documentation added (c8405c1, 1e03990, 5589eae, 9ce084a, 340c39c) - German documentation as default landing page (9f812b8)
-
1.0.0a1
Release: 1.0.0a16347ccfd · ·## Changelog: 0.9.2 → 1.0.0 ### New Features - **Model API (ORM-style):** Declarative query builder with typed model classes, conditions, sorting, and table fields - **Upsert builder:** Fluent `ecm.dms.upsert()` with configurable search and action strategies - **Dynamic models:** Runtime model creation via `make_folder_model()` / `make_register_model()` / `make_document_model()` - **`ecm.security` namespace:** User and group management (`users()`, `groups()`, `roles()`, `user()`) - **Impersonation:** `ecm.impersonate(username)` context manager - **Definition module:** Full parsing of `asobjdef` XML into a typed object graph ### New Endpoints - `dms.XMLCopy` — copy DMS objects - `dms.XMLMove` — move DMS objects - `dms.XMLDelete` — delete DMS objects by query - `dms.GetObjectDetails` — retrieve detailed object metadata - `std.CalcDocumentDigest` / `std.FindDocumentDigest` — document integrity via hash - `ado.ExecuteSQL` — execute raw SQL via ADO - `mng.GetUserList` / `mng.GetUserAttributes` / `mng.GetUserGroups` / `mng.GetUserRoles` — user management - `mng.GetGroupList` / `mng.GetGroupAttributes` / `mng.GetGroupMembers` — group management ### Architecture - Sync/async split into `ecm/synchron/` and `ecm/asynchron/` - `SyncPoolClient` / `AsyncPoolClient` replace `TcpPoolClient` - Python 3.12+, switched to **UV** as package manager - Added `ECMNotFoundException` and `ECMWrongStateException` ### Documentation - Antora-based documentation with migration guide and quickstart
-
-
-
0.9.0
Release: 0.9.0b08896f0 · ·# Release notes - remove protlib dependency - remove deprecated SOAP and COM clients and all related dependencies - replace tcp_client_classes with new rpc implementation - Add code documentation - bugfix pooling errors
-
0.8.1
Release: 0.8.14cf8667b · ·* Linting warnings * Fix buffer of buffer in RequestFile * Rename parameter bytes into file_bytes init in RequestFile * Fix CamelCase properties in sopa_client * Fix JobCaller connection error handling
-
-
-