291 lines
7.0 KiB
YAML
291 lines
7.0 KiB
YAML
node_types:
|
|
- company
|
|
- supplier
|
|
- project
|
|
- contract
|
|
- contract_change
|
|
- construction_task
|
|
- construction_task_detail
|
|
- material
|
|
- material_detail
|
|
- contract_settlement
|
|
- contract_settlement_detail
|
|
- personnel
|
|
- personnel_detail
|
|
- preparation
|
|
- production
|
|
- lar
|
|
- lar_change
|
|
- project_detail_data
|
|
- units
|
|
local_datasource:
|
|
type: jsonl
|
|
jsonl_dir: ${PROJECT_ROOT}/filtered_datasource/datasource/filtered
|
|
read_only: false
|
|
target_project_ids:
|
|
- "0f9c3e22-f4bb-4803-825a-4f238eeb06d5"
|
|
- "f3e02e84-e81c-4aa6-88d4-f5aa108c8227"
|
|
handler_configs: {}
|
|
remote_datasource:
|
|
type: api
|
|
api_base_url: http://localhost:8000/api/third/v2
|
|
api_uid: 6b18c681-92d5-4c7f-802c-df413b6504c8
|
|
api_secret: jTk5gSHTqDIZng1zh2z6jrT8JjVgCKsmV8_7NyESbQk
|
|
api_debug: true
|
|
api_rate_limit_max_requests: 30
|
|
api_rate_limit_window_seconds: 10.0
|
|
poll_max_retries: 1
|
|
poll_interval: 0.5
|
|
target_project_ids:
|
|
# 请替换为实际的项目ID,至少需要一个
|
|
- "0f9c3e22-f4bb-4803-825a-4f238eeb06d5"
|
|
- "f3e02e84-e81c-4aa6-88d4-f5aa108c8227"
|
|
handler_configs:
|
|
supplier: {}
|
|
persist:
|
|
backend: sqlite
|
|
db_path: ${PROJECT_ROOT}/test_results/sync_state_machine/simple_pipeline_sm.db
|
|
enable: true
|
|
wipe_on_start: false
|
|
logging:
|
|
initialize: true
|
|
file_dir: ${PROJECT_ROOT}/test_results/sync_state_machine
|
|
file_name_pattern: simple_pipeline_sm_{timestamp}.log
|
|
level: 20
|
|
strategies:
|
|
company:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- credit_code
|
|
depend_fields: {}
|
|
local_orphan_action: none
|
|
remote_orphan_action: create_local
|
|
update_direction: pull
|
|
supplier:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- credit_code
|
|
depend_fields: {}
|
|
local_orphan_action: none
|
|
remote_orphan_action: create_local
|
|
update_direction: pull
|
|
project:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: false
|
|
auto_bind_fields: []
|
|
pre_bind_data_id: []
|
|
depend_fields:
|
|
company_id: company
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
contract:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- company_id
|
|
- code
|
|
depend_fields:
|
|
project_id: project
|
|
company_id: supplier
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
contract_change:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- contract_id
|
|
- change_time
|
|
- title
|
|
depend_fields:
|
|
project_id: project
|
|
contract_id: contract
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
construction_task:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- contract_id
|
|
- task_type
|
|
depend_fields:
|
|
contract_id: contract
|
|
project_id: project
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
construction_task_detail:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- parent_id
|
|
- date
|
|
depend_fields:
|
|
parent_id: construction_task
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
material:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- contract_id
|
|
- material_type
|
|
depend_fields:
|
|
contract_id: contract
|
|
project_id: project
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
material_detail:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- parent_id
|
|
- date
|
|
depend_fields:
|
|
parent_id: material
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
contract_settlement:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- contract_id
|
|
depend_fields:
|
|
contract_id: contract
|
|
project_id: project
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
contract_settlement_detail:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- parent_id
|
|
- date
|
|
depend_fields:
|
|
parent_id: contract_settlement
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
personnel:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- code
|
|
depend_fields:
|
|
project_id: project
|
|
contract_id: contract
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
personnel_detail:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- parent_id
|
|
- date
|
|
depend_fields:
|
|
parent_id: personnel
|
|
local_orphan_action: create_remote
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
preparation:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- code
|
|
depend_fields:
|
|
project_id: project
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
production:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- code
|
|
depend_fields:
|
|
project_id: project
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
lar:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
depend_fields:
|
|
project_id: project
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
lar_change:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- change_time
|
|
- title
|
|
depend_fields:
|
|
project_id: project
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push
|
|
project_detail_data:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- key
|
|
depend_fields:
|
|
project_id: project
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push # 未在 field_direction_overrides 中列出的 key 默认 push
|
|
field_direction_key: key # 以节点 data.key 字段值作为方向查表键
|
|
field_direction_overrides:
|
|
ensure_production: pull # 远程 → 本地
|
|
climb_production: pull # 远程 → 本地
|
|
challenge_production: pull # 远程 → 本地
|
|
units:
|
|
skip_sync: false
|
|
config:
|
|
auto_bind: true
|
|
auto_bind_fields:
|
|
- project_id
|
|
- serial_number
|
|
depend_fields:
|
|
project_id: project
|
|
local_orphan_action: none
|
|
remote_orphan_action: none
|
|
update_direction: push
|