94 lines
5.6 KiB
Markdown
94 lines
5.6 KiB
Markdown
# Round 5V-2 — authorization received, restore prerequisite blocked
|
|
|
|
Date: 2026-10-14. Branch `fix/iot-safety-hardening`; starting commit
|
|
`5560a3ac0456b694609cdf9f21f7f59810950d76`. The user explicitly approved the
|
|
non-destructive migration on the named QA database, but not bypassing backup or
|
|
restore proof, database creation/deletion, privilege expansion or hardware control.
|
|
|
|
## Fresh actual database evidence
|
|
|
|
Read-only JDBC inspection connected only to
|
|
`192.168.139.218:4321/railwaysystem_fusion_qa_20261013`, using `fusion_qa_app`.
|
|
The server returned `KingbaseES V009R003C018`, database name exact, current schema
|
|
`public`, internal server endpoint `172.17.0.5:54321`. `transaction_read_only=on`,
|
|
repeatable-read transaction ended in rollback. No DDL/DML was issued.
|
|
|
|
- Base tables: public54, iotlocks9. Counts: train_student47, train_enrollment57,
|
|
train_accommodation34, lock_auth10, lock_command15. No personal rows were printed.
|
|
- Round 5S lifecycle metadata is absent. Existing schema/index definitions remain
|
|
in their pre-migration state. Historical LEGACY defaults cannot be claimed applied.
|
|
- App role is not superuser/createdb/createrole; no CREATE on either application
|
|
schema, affected tables owned by kingbase. Existing DML grants were inspected,
|
|
not exercised. Extra TRUNCATE/TRIGGER/REFERENCES on public.sys_menu,
|
|
public.sys_notice_read, public.sys_role_menu remain unchanged pending admin review.
|
|
- An initial read-only table-inventory query through information_schema.tables
|
|
returned SQLSTATE42501. The probe now reuses the already-readable pg_tables
|
|
catalog view and completes successfully without extra grants.
|
|
|
|
Evidence: `scripts/qa/QaDatabaseProbe.java` and private
|
|
`.qa-runtime/round5v2-preflight.log` (metadata/counts only).
|
|
|
|
## Migration scope PASS; runtime DDL semantics BLOCKED
|
|
|
|
Full 005 content was reviewed and independently allowlisted: 20 statements,
|
|
16 ADD COLUMNs and 4 CREATE INDEXes (2 unique), all limited to the two approved
|
|
`iotlocks` tables. No DROP/TRUNCATE/DELETE/UPDATE/GRANT or sequence reset.
|
|
SHA256: `90648b6ac67470f9a14f0795c4479dfb4811d4907e41a13ee5eeada16582b87f`.
|
|
The file was not changed. Additive scope is verified, but actual Kingbase DDL
|
|
transaction rollback, null-key uniqueness, repeated execution and lock behavior
|
|
have NOT been tested because the prerequisite restore gate is blocked.
|
|
|
|
## Concrete backup/restore blockers
|
|
|
|
1. No sys_dump/sys_restore/ksql/pg_dump/pg_restore on local PATH or in the scoped
|
|
common install/download locations checked. A PostgreSQL client was not installed
|
|
or substituted as evidence of Kingbase compatibility.
|
|
2. Docker CLI and Docker.app exist, but the configured desktop-linux daemon socket
|
|
does not exist; docker info fails. No usable local Kingbase restore instance
|
|
was discovered or supplied. No Docker startup, install, database creation,
|
|
network modification or engine initialization was performed.
|
|
3. Existing SSH alias wzbmatebook is reachable, but no vendor tools were found on
|
|
PATH or in the bounded /opt, /usr/local, /usr/lib, /home/wzb search; no matching
|
|
database/container process was reported. This is only a scoped resource check,
|
|
not a claim that no vendor installation exists anywhere.
|
|
4. Existing SSH authentication to database host 192.168.139.218 as configured user
|
|
wzb was denied. No password guessing, root fallback, new host-key acceptance,
|
|
remote installation or server changes were attempted.
|
|
5. Protected local QA configuration is 0600 and contains the usable app credential.
|
|
No explicit QA DDL-management connection or isolated restore connection was
|
|
found among its keys. Web-admin login keys are NOT treated as database-admin
|
|
credentials. The application role was not elevated or used to attempt DDL.
|
|
|
|
BACKUP_CREATED = BLOCKED: no new native consistent backup.
|
|
ISOLATED_RESTORE_VERIFIED = BLOCKED: no actual isolated database restore.
|
|
Previous private XML snapshots remain protected but do not satisfy either result.
|
|
Therefore formal migration and all dependent phases stop, as explicitly required.
|
|
|
|
## Work completed without migration
|
|
|
|
- Frontend production build rerun successfully from this archive, using its own
|
|
declared dependencies/lockfile and Quill transpilation configuration. Evidence:
|
|
`.qa-runtime/round5v2-frontend-build.log`. No Antigravity temporary path was used.
|
|
- 11 QA-tool tests rerun successfully. The modified Java probe actually compiled
|
|
and ran on Java21 against Kingbase in read-only mode. No critical backend source
|
|
changed; prior 85 JUnit results are historical evidence, not a new Kingbase run.
|
|
- Runbook and migration plan now acknowledge authorization and identify restore
|
|
prerequisites, rather than incorrectly saying user approval is still missing.
|
|
- New Spring Boot/Redis/Chrome was not started; no old experiment backend or fake
|
|
API substituted. Full login/routes, original homepage/charts, nine IoT pages and
|
|
accommodation software E2E remain BLOCKED, not PASS.
|
|
- Safety defaults remain MQTT Mock, real writes false, whitelist empty, face HTTP
|
|
disabled, OpenAPI/QA control interfaces disabled. No real device operation occurred.
|
|
|
|
## Required inputs to unblock this same workflow
|
|
|
|
Provide a matching licensed Kingbase native tool location, an **already existing
|
|
and approved** independent restore instance/database with protected connection
|
|
configuration, and the existing authorized DDL-management connection for this QA
|
|
database. Do not send passwords in chat. No new database or expanded app privilege
|
|
is requested or inferred. Once those inputs exist, prove restore first, then follow
|
|
the migration plan and run actual Kingbase transactions, startup and Chrome E2E.
|
|
|
|
SOFTWARE_QA_READY = BLOCKED.
|
|
READY_FOR_SUPERVISED_HARDWARE_TEST = BLOCKED.
|