45 Commits
Author SHA1 Message Date
pnoker b6726f7dc1 docs(agents): document the commit-msg hook now that it exists 2026-09-18 11:44:34 +08:00
pnokerandClaude Code 11a8a8f775 docs(agents): split task-area conventions into dc3/agents guides
AGENTS.md stays lean with always-relevant rules and a task routing
table; the deep per-area conventions move to
dc3/agents/{backend,frontend,cli,testing}.md to be read on demand.
CONTRIBUTING.md documents the changelog-only commit rule and the
generated-CHANGE.md editing policy.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-07 19:33:30 +08:00
pnoker 7fde111341 refactor(db): move r2dbc store adapters into per-domain postgres modules
Relocate all 64 R2dbc*Store implementations from dc3-common-{auth,manager,data,agentic} repositories into new dc3-db-postgres-{auth,manager,data,agentic} adapter modules (package io.github.pnoker.db.postgres.<domain>), each registered through its own AutoConfiguration. Reactive*Store ports and filter types stay in the business modules; services are untouched. Drops stale MyBatis wording from AGENTS.md and init runner javadoc.
2026-09-03 09:01:32 +08:00
pnoker 66aab58f20 build: standardize repository tooling and quality gates 2026-09-02 20:51:10 +08:00
pnoker 51edc7c198 refactor(common): rename resource registrar module 2026-09-01 23:42:00 +08:00
pnoker eae86b58fc refactor(storage)!: unify platform persistence on reactive postgresql
- 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.
2026-09-01 22:03:16 +08:00
pnoker b828719d38 feat(cli): adopt dc3-cli into the repository as a standalone module
Move the previously untracked TypeScript CLI into iot-dc3 as an
independently managed module next to dc3-web:

- pnpm workspace (pnpm@11.24.0) with esbuild build approval,
  package renamed to iot-dc3-cli, npm lockfile dropped
- add eslint flat config; lint now runs green after removing
  unused imports/vars and adding switch-case breaks in config.ts
- document CLI conventions and commands in AGENTS.md
2026-09-01 22:03:13 +08:00
pnoker 11640cf6ac build: deploy dc3-db artifacts and document store selection env
- include dc3-db in the make deploy artifact set alongside common/mq/tsdb
- sample DC3_DB_TYPE/DC3_TSDB_TYPE and external-store ports in .env.example
- expose mysql/mariadb/tdengine/influxdb/iotdb/jaeger in the compose stacks
- update AGENTS.md module map and module-ownership guidance
- add the missing AGPL header to the oracle driver service
2026-08-25 19:27:57 +08:00
pnoker 769d1cb977 style: apply repository-wide formatting
- expand single-line Javadocs to multi-line blocks, rewrap Markdown prose, and reflow POM, YAML, and TypeScript formatting
- formatting only: no Java code lines changed, no build-file semantics changed
- verified: backend compile and check_documentation.py pass, pnpm check and pnpm lint:check pass, and the dc3 YAML files parse
2026-08-25 13:35:00 +08:00
pnoker 5a89b39ec1 refactor(build): move the relational core into the db family as dc3-db-core
dc3-common-jdbc was the family's core in disguise — MyBatis-Plus wiring,
the tenant-line handler, the databaseIdProvider, the jdbc profile. It now
lives as dc3-db/dc3-db-core, matching the dc3-mq-core / dc3-tsdb-core
shape: one aggregator, port first, adapters after, tck last. Artifact
renamed, packages deliberately untouched (same convention as the mq
family move); twelve poms rewired, the family aggregator puts core
first, and the db-tck now depends on the core explicitly instead of
riding transitives.

dc3-common-sql stays where it is on purpose: it is not platform dialect
plumbing but the base class of the four JDBC *device drivers*
(mysql/oracle/postgresql/sqlserver drivers that connect to external
databases being collected from) and depends on the driver SDK — under
dc3-db it would claim a meaning it does not have.

Gates: db-tck 24/24 (postgres + mysql + mariadb), data 274/274,
full-repo compile green.
2026-08-24 20:19:06 +08:00
pnoker 66acf91ef6 docs(agents): refresh the repo map for the mq and tsdb family layout 2026-08-24 16:20:46 +08:00
pnoker b26c0000be feat(release): add release backfill tool and docs-linked release footer 2026-08-19 17:02:35 +08:00
pnoker 90a7db4d6b merge: integrate upstream deployment docs and validation targets 2026-08-19 14:30:34 +08:00
pnoker 2426d1b47f ci(docs): enforce documentation consistency 2026-08-19 00:06:14 +08:00
pnoker b02d8f81fc refactor!(web): parse identifiers as strings and drop json-bigint
BREAKING CHANGE: frontend identifier types converge to string and the json-bigint dependency is removed; the backend now emits string ids.
2026-08-17 21:37:49 +08:00
pnoker a7a1650be5 docs(slogan): unify positioning across readme languages and web meta 2026-08-14 16:54:10 +08:00
pnoker a58064cc5c ci(release): verify releases before publishing artifacts 2026-08-12 01:04:49 +08:00
pnoker 6c9149f9b2 feat(web): enrich the localized Industrial AI mock experience 2026-08-12 01:04:47 +08:00
hongyuan.zhang 9099ad093d docs(agents): consolidate repository guidance 2026-08-11 22:58:07 +08:00
pnoker 50c6de9438 docs: rewrap project guides and README files
Prose rewrapping and table reflow from a project-wide markdown pass;
no content changes. Also reverts two formatter mistakes: restores
MD5(password) in dc3-web/AGENTS.md and drops spurious spaces after
CJK punctuation in README.zh.md / README.ja.md.

Covers root guides (AGENTS/CONTRIBUTING/SECURITY/README.*), module
READMEs across dc3-api/center/common/driver/e2e/gateway, the nginx
guide, dc3/doc/{README,TITLE}.md, and dc3-web docs.
2026-08-09 18:44:55 +08:00
Henry Zhang d06abff597 chore(docs): move docs site to standalone pnoker/iot-dc3-docs repo (#177)
* chore(docs): move docs site to standalone pnoker/iot-dc3-docs repo

The VitePress docs site now lives in pnoker/iot-dc3-docs and serves docs.dc3.site from there. Remove the in-repo docs/ and all docs-only build/deploy wiring so nothing dangles.

- delete docs/ (source moved to pnoker/iot-dc3-docs)

- delete .github/workflows/docs.yml (deploy owned by iot-dc3-docs)

- drop npm /docs dependabot block; clean codeql/.gitignore docs paths

- remove Makefile docs-* targets

- relocate AI testing policy into dc3-web/tests/ so the required Web guardrail test is self-contained (was reading ../docs/...)

- rewire README image refs (7 READMEs) and in-repo doc links (README.ai.md, AGENTS.md, dc3/doc/README.md) to https://docs.dc3.site / the new repo

dc3/doc/{TITLE,CHANGE,USAGE}.md STAY - release tooling (make changelog, docker-ci) regenerates them; the docs repo snapshots them.

* fix(docs): repair pre-existing broken doc links found during migration

- 8 READMEs: /en|zh/introduction/technology-stack -> /en|zh/development/technology-stack (page lives under development/, not introduction/)

- dc3-web/tests/README.md: ../docs/test-debugging.md (missing) -> https://docs.dc3.site/en/frontend/test-debugging
2026-08-06 14:54:17 +08:00
pnoker 4ea339ba14 chore(web): remove prettier, use IDE formatter for code style
Drop prettier, eslint-config-prettier, eslint-plugin-prettier and related
configs. Code formatting is now controlled solely by the IDE (IDEA) via
.editorconfig, eliminating the two-formatter conflict.
2026-07-10 00:01:51 +08:00
pnoker aa34de64a6 docs: update git hooks documentation from githooks to husky 2026-06-29 16:41:20 +08:00
pnoker cba2d54780 docs: align Make command references with new compose shortcuts
Update READMEs, guides, USAGE and the stack-test skill to use the
up-<stack>[-<registry>] targets in place of the removed dev-* commands.
2026-06-18 18:42:28 +08:00
pnoker 582f103d42 docs(agents): document the read-only projection VO exception
Record that read-only projection/aggregation responses (dashboard stats, health
snapshots, topic/model-option listings, history queries) may be returned directly
as VO without a parallel BO; the "services expose BO" rule applies to persistent
business entities and write-path business inputs.
2026-06-18 17:19:10 +08:00
Vickey 8a2a87f96c docs(openapi): add API documentation guide, export tooling, and conventions
- Add docs/development/api-documentation.md describing the Swagger UI layout,
  per-center grouping, auth headers, and production exposure.
- Add a `make openapi` target + dc3/bin/export_openapi.sh to snapshot each
  center's OpenAPI JSON from a running stack.
- Update AGENTS.md: OpenAPI/Swagger conventions, and correct the enum-suffix
  examples (multi-valued sets use *TypeEnum, not *FlagEnum).
2026-06-09 15:52:46 +08:00
pnoker 55605d66a9 docs: update project documentation and guidance files 2026-06-05 22:41:02 +08:00
Vickey 918b3d5e8e feat: update pom version to 2026.5.22 2026-05-26 00:30:11 +08:00
Vickey c40c3844bc docs: fix stale doc paths and version info in AI agent instructions 2026-05-24 10:30:26 +08:00
Vickey 8df45eac02 docs: remove AI commit identity section from AGENTS.md 2026-05-24 03:53:58 +08:00
pnoker c69b453af6 refactor: rename notify record to history 2026-05-20 21:20:52 +08:00
Vickey 14faabedc7 style: apply consistent formatting across GitHub workflows, docs and common modules 2026-05-19 00:15:07 +08:00
Vickey 79a67de2d1 docs(agents): document CRUD verb convention for list/get unification
Sediment the naming convention used across the recent rename cascade
into AGENTS.md so future contributors and AI agents apply it consistently:

- get* for single-record returns, list* for multi-record returns
- HTTP path mirrors method name in snake_case (/get_*, /list_*)
- gRPC RPC mirrors method name in PascalCase (GetXxx, ListXxx)
- select* reserved for Mapper-layer SQL calls only
- remove* reserved for MyBatis-Plus inherited Manager methods
- Document special cases: getStatusByPage, tryCancelToken,
  dispatchRead/dispatchWrite
2026-05-18 20:00:06 +08:00
pnoker 1919ac68b3 refactor(common): normalize enum naming and document suffix convention
NotifyRecordStatusFlagEnum is renamed to NotifyRecordStatusEnum so
the suffix matches the other state-machine enums (DeviceStatusEnum,
DriverStatusEnum, AgenticActionStatusEnum). Reserve the *FlagEnum
suffix for boolean-like 0/1 toggles only.

DeviceStatusEnum and DriverStatusEnum kept their human-readable
'code' field as uppercase tokens ("ONLINE", "OFFLINE", ...). Lowercase
them ("online", "offline", "maintain", "fault") to match the
convention already used by EnableFlagEnum, AgenticActionStatusEnum,
NotifyRecordStatusEnum and others.

AGENTS.md documents the new convention:
  *FlagEnum   - boolean-like 0/1 toggles
  *StatusEnum - state-machine values
  *TypeEnum   - closed classification sets
  Constants stay UPPER_SNAKE_CASE (no single-letter names).
  Internal 'code' string field is lowercase.
2026-05-18 17:55:16 +08:00
pnoker 80ec2beab4 docs: update documentation for compose and Makefile changes
Align all READMEs, AGENTS.md, CONTRIBUTING.md and dc3/doc/* with the
new Makefile interface (SERVICES/GROUP selectors, REGISTRY=cn, podman
default) and updated Dockerfile structure.
2026-05-17 22:16:37 +08:00
pnoker 994ccba991 docs: update READMEs and project documentation
Refresh module READMEs, AGENTS.md, CONTRIBUTING.md, and dc3/doc/
guides to reflect the unified Dockerfile, consolidated compose stacks,
and updated build instructions.
2026-05-17 19:03:21 +08:00
Vickey 10e0836026 docs(test): add testing guide and update validation checklist
Introduce dc3/doc/TESTING.md as the canonical reference for the iot-dc3
test pyramid, naming conventions, time/randomness isolation rules,
Testcontainers conventions pinned to the production timescaledb-ha:pg18
image, fixture data strategy, contract base classes shipped by
dc3-common-test, the make commands developers run locally and the
ci.yml/test.yml/e2e.yml workflow contract.

Update AGENTS.md so:

- The Validation Checklist references make test, make test-it,
  make coverage and proto contract tests; coverage regressions over 1%
  block PRs.
- The Documentation Rules section now lists TESTING.md alongside the
  other domain-specific docs to keep the guide current as the harness
  evolves.

This closes the S0 stage of the test build-out: every subsequent stage
(S1..S8) will deliver business test cases under the layout defined here.
2026-05-13 13:10:50 +08:00
pnoker 88a114f8ac docs(agent): document domain modeling conventions 2026-05-11 19:14:33 +08:00
pnoker 6d97de316d docs: update AGENTS.md with project architecture and workflow instructions 2026-05-11 15:34:41 +08:00
pnoker 47f3a7a220 fix(config): use webflux base paths 2026-05-09 22:49:26 +08:00
pnoker be1d456b68 refactor(log): standardize core logging conventions 2026-05-09 22:40:21 +08:00
pnoker 6bb97d0939 docs(agent): add shared coding agent guidance 2026-05-09 21:16:25 +08:00
pnoker 4ffde2086f feat: update technology stack to Spring Boot 4.0.6 and remove Redis dependency in favor of LocalCacheService 2026-04-29 19:02:59 +08:00
pnoker d09647c780 fix: update Mybatis and Dynamic Datasource dependencies to version 4, remove Redis exporter from docker-compose files 2026-04-29 16:01:11 +08:00
pnoker ea17c86387 chore: update version to 2026.4.19 across all modules and adjust branch settings in codeql.yml 2026-04-19 13:45:21 +08:00