mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-10-31 10:11:49 +08:00
- migrate auth, manager, data, and agentic persistence to R2DBC - hard cut pagination, facade, gateway, web, and CLI contracts - remove legacy database and TSDB adapters and document validation gates BREAKING CHANGE: platform persistence now requires PostgreSQL 18 with TimescaleDB and the new reactive API contracts.
37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
# DC3 API
|
|
|
|
`dc3-api` owns the protobuf contracts shared between IoT DC3 processes. It contains generated-contract modules only;
|
|
business logic belongs in `dc3-common-*` implementations.
|
|
|
|
## Modules
|
|
|
|
| Module | Contract surface | Primary consumers |
|
|
|-------------------|----------------------------------------------------------------------------|------------------------------------|
|
|
| `dc3-api-auth` | tenant, user, token, permission, resource registry, MCP runtime | gateway and center services |
|
|
| `dc3-api-data` | point values, command history, event history | manager, drivers, and data clients |
|
|
| `dc3-api-driver` | driver registration and driver-scoped device/point metadata | protocol drivers |
|
|
| `dc3-api-manager` | manager-scoped driver, device, profile, point, command, and event metadata | data and other centers |
|
|
|
|
Proto sources live under each module's `src/main/protobuf/` directory. Generated Java sources are build artifacts and
|
|
must not be edited directly.
|
|
|
|
## Contract changes
|
|
|
|
1. Update the affected `.proto` files.
|
|
2. Treat contract changes as a coordinated hard cutover; compatibility shims are not supported.
|
|
3. Compile the affected module to regenerate Java sources.
|
|
4. Update server implementations, builders, and clients together.
|
|
5. Verify tenant propagation, standard gRPC status handling, and single/list cardinality naming.
|
|
|
|
```bash
|
|
mvn -s .mvn/settings.xml -q -f dc3-api/pom.xml compile
|
|
```
|
|
|
|
Use `GetXxx` for single results and `ListXxx` for collections, pages, or maps. Do not reintroduce legacy `SelectXxx`
|
|
RPC names.
|
|
|
|
## Documentation ownership
|
|
|
|
Each child README documents its current services and messages. The `.proto` files remain the authoritative source for
|
|
method names, request/response types, and field definitions.
|