HomeSecurity & compliance
Security & Compliance

Boundaries are not a matter of discipline

We build infrastructure, so security is not an add-on but part of the product form. This page states exactly what we have done, where the boundaries are drawn, and which conclusions need to be confirmed per project.

Pillars

Six non-negotiable lines

Whichever business line or delivery model, these six apply. Each is annotated with where it is implemented, so you can verify instead of taking our word for it.

Boundaries are not a matter of discipline

Any constraint that can be baked into the compiler, the framework or the query layer does not go into a document for people to remember. Tenant isolation is enforced by a query-layer listener; domain boundaries are rejected at compile time by Go’s internal mechanism.

jOOQ TenantScopeVisitListener · Go internal 墙
No compromise on the data boundary

Sensitive data stays on the user device or inside the customer network by default. All four business lines support private deployment, and legdger does not even send AI analysis off the device.

legdger 端侧 AI · Uniclaw 自建 Milvus · Unilearning 单容器
Minimal credentials

Agents never share human credentials, servers never hard-code long-lived keys, and endpoint integrations use revocable tokens. Any credential can be revoked on its own without affecting other principals.

UIAM MACHINE 主体 · OSS STS AssumeRole · ledger-cli 令牌
Everything is traceable

Authentication, authorization, tool calls and captured traffic all produce structured records. We keep them not for compliance theatre but so that incidents can be replayed.

uiam-audit · collaboration-logger · pxc 会话记录
Excess privilege is traceable

Delegation is expressed with the act claim — who acts for whom — with permissions intersected at every hop. Audit can answer which user authorized which agent, which tool it called, and with which permissions.

RFC 8693 Token Exchange · agent_tools 注册表
Changes are reversible

Database changes go through versioned migrations that produce the same result on repeat; application releases are single-image swaps, so rollback means switching back to the previous image.

Liquibase · 各域方言迁移 · Docker 单镜像
Data Boundary

Where the data stops

The data boundary is determined by the product form, not by a toggle someone can flip. We split it into three layers, and what may live in each is spelled out.

01
Stays on the user device

The minimum boundary for endpoint products. Data at this layer has no upload path by design — it is not switched off by a toggle.

  • All legdger ledger data: encrypted locally, only ciphertext reaches the cloud
  • legdger on-device AI statistics and Q&A: inference runs on the device
  • NewTool desktop and wasm forms: the algorithm kernel has no IO, so data never leaves the process
  • pxc captured traffic: the kernel runs locally and does not pass through third-party services
02
Stays inside the customer network

The boundary for private deployment. Models, vectors, business data and audit records are all deployed inside the customer’s own network.

  • Uniclaw memory and knowledge vectors: self-hosted Milvus, never leaving the intranet
  • Uniclaw model services: can connect to privately deployed compatible-protocol services
  • UIAM identity and audit data: the whole deployment sits inside the customer boundary and can run fully air-gapped
  • Uniscrm assets and media: object storage can connect to the customer’s own OSS
  • Unilearning courseware and learning records: delivered as a single container, with data under the customer’s control
03
Leaves the network only when necessary

The only things needing external network access are sync and external channels, and what travels is ciphertext or already-desensitised messages.

  • legdger cross-device sync: uploads only the latest ciphertext, and the server keeps no history
  • Uniscrm WeCom channel: communicates with official WeCom interfaces and uses official archiving capability
  • Uniclaw channels: Feishu / DingTalk push APIs, with content isolated per tenant
  • NewTool remote calls: transported over MCP, while the algorithm kernel itself makes no network requests
Compliance Mapping

Compliance mapping

Common compliance requirements on the left, our concrete supporting points on the right. This table describes capabilities already implemented in the product, not certification claims — certification materials are provided with the delivery project.

Requirement
Support
Where
Traceable access: able to answer who accessed what, and when
Authentication, authorization and tool calls are all recorded in structured form, searchable along three axes — principal, tenant and time
uiam-audit · audit event stream
Least privilege: only the permissions needed to do the work
RBAC with data permissions on a second track; delegation takes the intersection of application ∩ user permissions, trimmed to the configured ceiling
uiam-authz · maxPermissionLevel
Revocation on departure: no residual permissions after personnel changes
A departure event triggers full permission revocation, effective immediately — no waiting for the user’s next login
employee lifecycle automation
Conversation retention: business communications can be archived and searched
WeCom’s official archiving capability plus an employee consent mechanism; consent status is stored and queryable, with full-text search
uniscrm-msgaudit · employee consent
Content compliance: policy-violating language is stopped before it is sent
Real-time sensitive-word checks and blocking, content audit rules, unfriend logging and churn warnings
uniscrm-riskctl · ContentAudit
Data residency: sensitive data never leaves the country or the intranet
Every product line supports private deployment; endpoint-product data never leaves the device, and private deployments can run fully air-gapped
delivery forms across the four business lines
Key management: credentials are rotatable and never hard-coded
System JWT keys rotate without downtime; object storage uses AssumeRole temporary credentials; endpoint access tokens are revocable
uiam-protocol-core · OSS STS · ledger-cli token
Controlled change: upgrades are verifiable and failures are rollback-able
Versioned migrations are idempotent and re-runnable; applications swap a single image; migration versions are recorded in-database and already-applied ones are skipped automatically
Liquibase · unile_migrations
Engineering Practices

Security habits on the engineering side

These habits are not written in a security whitepaper — they are written into commit conventions and the build pipeline.

Dependency convergence

No dependency is introduced where the standard library would do. Unilearning’s LLM client implements the OpenAI-compatible protocol with the Go standard library alone — zero new dependencies.

Migration files are immutable

Once released, a database migration file is never modified; new versions are appended only. This prevents “works locally, differs in production”.

Interception at build time

NewTool uses build.rs to compare the manifest against the code at build time; drift fails the build outright. Checks like this live in CI, not in documents.

The manifest is the contract

A tool’s visibility, parameters and effective forms are declared in tool.toml; the manifest is the single source of truth, and code comments are not evidence.

Audit cannot be turned off

The tenant-filter bypass path (runAsSystem) itself produces an audit record — anything that can bypass must leave a trace.

Strictest by default

When a tenant predicate is missing, the default is to write a security log as configured or throw outright; risk events are flagged separately at SECURITY / FAILURE level.

Per Product

Security capabilities by business line

Each business line’s detail page lists its own security items and where they are implemented.

Scope statement

This page describes security capabilities and compliance supporting points already implemented in the product; it is not a statement of any certification or compliance conclusion. Certification materials, penetration test reports and compliance conclusions are provided by the delivery team with the delivery project. For regulated scenarios, we recommend adding compliance requirements to the requirements list during solution design — we adjust the implementation accordingly rather than patching documents afterwards.

Get in touch

Hand the complexity of identity, agents and private domain to one governable kernel

Whether you are replacing an existing IAM, building an agent platform, or trying to make private-domain operations actually work — start with a 30-minute architecture call. We will first judge whether this is the kind of problem we are good at, and say so plainly if it is not.