Tags

Tags give the ability to mark specific points in history as being important
  • 1.0.0a4

    0658eb72 · Update Readme ·
    ## 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

    ## 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 · Add std.GetDocumentStream ·
    ## 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

    6347ccfd · update documentation ·
    Release: 1.0.0a1
    ## 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.2

    Release: 0.9.2
    Catch ConnectionResetError
  • 0.9.1

    Release: 0.9.1
    Add optional SQL prepared statements feature by Komm.one
  • 0.9.0

    Release: 0.9.0
    # 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.1
    * 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
  • 0.8.0

    01ddad50 · Add pypi prod ·
    Release: 0.8.0
    Init CICD automation for pypi prod
  • 0.7.8

    Release: 0.7.8
    Add new enaio server TLS certificate
  • 0.4.7

    f13e756c · Update Version 0.4.7 ·
    Release: 0.4.7