Libraries
velt-py
New Features
-
[Self Hosting]: New pluggable, fail-closed
sdk.selfHosting.verifyTokenhelper authenticates the credential the Velt frontend forwards to endpoint-based self-hosting resolvers. Opt in via aresolver_authconfig block; it supports a built-in JWT/JWKS verifier (HS256/RS256/ES256 with algorithm pinning, HTTPS-only JWKS, claim enforcement, leeway, opt-inexprequirement) and a custom-callback escape hatch. It returns a structuredVerifyTokenResultand never raises for a verification outcome. Adds the optionalvelt-py[auth]extra (PyJWT>=2.8.0, cryptography>=42.0.0) and new exportsVerifyTokenResultandResolverAuthService. Learn more → -
[Self Hosting]: New 14-member
CommentResolverSaveEvent(str, Enum)covers additional comment-resolver save events (status change, priority change, assign, approve, comment-level reactions, subscribe/unsubscribe, and more) the frontend can opt into sending viaResolverConfig.additionalSaveEvents.SaveCommentResolverRequest.eventis widened toOptional[Union[ResolverActions, CommentResolverSaveEvent, str]]and stays fully additive — every existingResolverActionsvalue still parses to the same member. Exported fromvelt_pyandvelt_py.models. Learn more → -
[Self Hosting]: New optional
SaveCommentResolverRequest.targetComment: Optional[PartialComment]field carries the comment the action occurred on (resolved by the frontend fromcommentId).from_dictparses it fail-open; it is request context for your handler only andsaveCommentsnever persists it. Learn more →
Bug Fixes
-
[Self Hosting]: Legacy reaction documents stored under the old
userkey are read transparently.from_dict()accepts eitherfromor the legacyuserkey (fromwins when both are present) and populatesfrom_, whileto_dict()always emitsfrom. No data migration is needed. Learn more → -
[Self Hosting]: The self-hosting package now exports all wired services.
RecorderService,NotificationService, andActivityServiceare now importable fromvelt_py.services.self_hostingand listed in its__all__. Learn more →
New Features
-
[REST API]: New
agentsservice (sdk.api.agents) for managing AI agents, versions, executions, prompt tooling, and agent groups (24 methods). Learn more → -
[REST API]: New
memoryservice (sdk.api.memory) for semantic search, judgments, knowledge ingestion, reviewer profiles/patterns/stats, and alerts (24 methods). Learn more → -
[REST API]: New
workflowservice (sdk.api.workflow) for Approval Engine / workflow orchestration, covering definitions, executions, lifecycle events, and step resolution (14 methods). Learn more → -
[REST API]:
usersservice additions for user invitations (invite/respond/list), counts, and document-user queries;getUsersgains optionalincludeInvolvedDocumentsandsearchKeyfilters. Learn more → -
[REST API]:
documentsservice addsgetDocumentsCount, which can optionally exclude folder documents or scope the count to a specific folder. Learn more → -
[REST API]:
crdtservice addsdeleteCrdtData, which targets specificeditorIdsor deletes all editors for a document when omitted. Learn more → -
[REST API]:
workspaceservice adds 19 new methods covering domain requests, API key configuration/copy, notification/permission-provider/activity configs, and advanced (Svix) webhook endpoint management. Learn more →
Improvements
- [REST API]: New opt-in
filter_unknown_fieldskeyword (defaultFalse) on the add/update methods ofcommentAnnotations,activities, andnotificationsfilters request entity collections to only the fields the Velt API accepts, dropping unknown top-level custom keys. It applies to top-level fields only (nested open-typed fields pass through whole) and fails open, never blocking a write. Backed by a newvelt_py.models.field_allowlistsmodule.
Bug Fixes
- [REST API]:
sdk.api.workspace.getApiKeyMetadatanow targets the canonical/v2/workspace/apikeyconfig/getendpoint (previously/v2/workspace/apikeymetadata/get, which remains a legacy alias). No call-site change is required — the method signature is unchanged.
New Features
-
[Self Hosting]:
PartialCommentAnnotationnow exposesfrom(comment author),assignedTo,targetTextRange, andresolvedByUserIdas first-class typed fields. These four keys previously fell through silently viaextra_fields. Learn more → -
[Self Hosting]: New
PartialTargetTextRangedataclass (exported fromvelt_py.models) represents the selected text snippet a comment annotation is anchored to. Learn more →
Improvements
-
[Self Hosting]:
BaseMetadatanow modelssdkVersionanddocumentMetadata, which were previously dropped silently; self-hosted Mongo writes now preserve both fields. -
[Self Hosting]: Introduced an
UNSETsentinel onresolvedByUserIdto distinguish “field absent from payload” (no Mongo write) from “explicit null” (the frontend’s unresolve action — writes null to Mongo).
Bug Fixes
None.New Features
-
[REST API Backend]: The
sdk.api.*namespace is now available, introducing a REST API backend for the Python SDK with feature parity with the Velt Node SDK. Learn more → -
[REST API Services]: 17 services are included:
organizations,folders,documents,users,userGroups,notifications,commentAnnotations,activities,accessControl,crdt,presence,livestate,recordings,rewriter,gdpr,workspace, andtoken. -
[Typed Request Dataclasses]: Every
sdk.api.*method accepts a typed@dataclassrequest object (e.g.,AddOrganizationsRequest) and returns the raw Velt API response without local reshaping or validation. -
[camelCase Method Names]: All
sdk.api.*method names are camelCase and match the JavaScript/Node SDK one-to-one. -
[Custom Error Classes]: Three new error classes are available:
VeltValidationError,VeltTokenError, andVeltApiError, all extending the baseVeltSDKError. -
[Environment Variable Support]: The SDK reads
VELT_API_KEY,VELT_AUTH_TOKEN,VELT_WORKSPACE_ID, andVELT_WORKSPACE_AUTH_TOKENfrom the environment for credential configuration. -
[PyPI Distribution]: The package is published to PyPI as
velt-py. Requires Python 3.8+; therequestslibrary is installed automatically as a dependency.

