Data-boundary Scan¶
jarvis scan --data-boundaries รายงานขอบเขตข้อมูลระดับแอปพลิเคชัน (application-level
data boundaries) ในการตั้งค่า OpenJarvis ปัจจุบัน มันเสริมการสแกน host/environment
ที่มีอยู่แล้ว ซึ่งตรวจสอบท่าทีของ OS เช่นการเข้ารหัสดิสก์, cloud-sync agent,
เครื่องมือเข้าถึงระยะไกล และ port ของ engine ที่เปิดออกสู่ภายนอก
Data-boundary scan คือเครื่องมือวินิจฉัย configuration ไม่ใช่ vulnerability scanner, การประเมินความเป็นส่วนตัวเชิงกฎหมาย, network monitor หรือการตรวจสอบ OAuth scope
รันการสแกน¶
jarvis scan --data-boundaries
jarvis scan --data-boundaries --json
jarvis scan --data-boundaries --json --show-paths
jarvis scan --data-boundaries --strict
--strict จะ exit ด้วย status code 1 เมื่อรายงานพบข้อค้นพบระดับ fail
หรือ warn ใช้ตัวเลือกนี้เมื่อ CI หรือการตรวจก่อน demo ต้องบังคับท่าที
local-only แบบระมัดระวัง
หากไม่ใส่ --strict คำสั่งจะ exit ด้วย 0 เสมอ แม้จะมีข้อค้นพบระดับ fail
หรือ warn อยู่ก็ตาม มีประโยชน์สำหรับการรีวิวแบบสำรวจ
บนการตั้งค่า jarvis init แบบใหม่ ข้อค้นพบระดับ warn ที่พบบ่อยได้แก่
server.host = "0.0.0.0" และ telemetry.enabled = true ดังนั้นการรัน
jarvis scan --data-boundaries --strict หลัง init จะ exit 1 จนกว่าค่า
เริ่มต้นเหล่านั้นจะถูกทำให้เข้มงวดขึ้น
Path แบบ absolute และชื่อไฟล์ basename ของ connector จะถูก redact เป็น
ค่าเริ่มต้น เพื่อให้รายงาน JSON วางลงใน issue ได้โดยไม่เปิดเผยชื่อผู้ใช้
ในเครื่อง, mount point หรือ label บัญชี ใช้ --show-paths เฉพาะสำหรับ
การดีบักในเครื่องเท่านั้น
สิ่งที่สแกนตรวจสอบ¶
การสแกนนี้ตรวจสอบค่า configuration, การมีอยู่ของ environment variable และ การมีอยู่ของไฟล์ runtime ในเครื่องที่รู้จัก มันไม่อ่านเนื้อหาส่วนตัวจาก ฐานข้อมูล memory, ฐานข้อมูล trace, credential ของ connector, ไฟล์ prompt, log หรือไฟล์ OAuth token
การตรวจสอบปัจจุบันครอบคลุม:
- การตั้งค่าผู้ให้บริการโมเดลที่รองรับ cloud, engine และโมเดลเริ่มต้น
- การแทรกบริบทจาก memory ในเครื่อง ร่วมกับการอนุมานที่รองรับ cloud
- การตั้งค่า trace, telemetry, learning, training และ spec-search
- บริการ memory อัตโนมัติ (
tools.storage.enabled/[memory].enabled) - การตั้งค่า engine และโมเดลของ deep research
- flag ข้ามระบบความปลอดภัย เมื่อตั้งค่าการอนุมานผ่าน cloud
security.profileที่ยังไม่ได้ตั้งค่า (ระดับข้อมูล)- การค้นหาเว็บ, เบราว์เซอร์, ไฟล์ในเครื่อง, shell, โค้ด, การสแกน knowledge chunk และพื้นผิว tool ของ MCP
- องค์ประกอบของ
knowledge.dbในเครื่อง ร่วมกับเป้าหมาย Deep Research ที่รองรับ cloud - การ bind เซิร์ฟเวอร์และการเปิด A2A แบบไม่ยืนยันตัวตน
- การเปิดใช้งาน channel, ฟิลด์ credential ของ channel และ environment variable ของ credential channel
- skill, การ sync skill อัตโนมัติ, แหล่งข้อมูล digest และ backend เสียง/TTS ที่รองรับ cloud เช่น Cartesia
- ที่เก็บข้อมูลในเครื่อง เช่น
knowledge.db,credentials.toml,memory.db,traces.db,telemetry.db,scheduler.db, embedding, ดัชนี skill,.vault_keyและไฟล์ memory - ไฟล์ credential ของ connector ใต้
connectors/*.jsonโดยไม่อ่านเนื้อหา - environment variable ของ API key และ credential runtime อื่นๆ (ตรวจสอบแค่ว่ามีอยู่)
- หมายเหตุขอบเขตสำหรับที่เก็บ credential ฝั่ง frontend เมื่อมีพื้นผิว cloud/API-key อยู่
Path ของฐานข้อมูลที่ตั้งค่าไว้ (เช่น traces.db_path หรือ memory.db_path)
จะถูก resolve จาก config เมื่อมีการตั้งค่าไว้ ไม่ใช่แค่ตำแหน่งเริ่มต้นใต้
ไดเรกทอรี home ของ OpenJarvis เท่านั้น
การกำหนดเป้าหมายของ Deep Research แบบ static ใช้ configuration เท่านั้น
(ไม่มีการ override จาก request): deep_research.engine หรือ
engine.default, และ deep_research.model หรือ server.model หรือ
intelligence.default_model
Identifier ของโมเดลที่มีชื่อผู้ให้บริการอยู่ (เช่น deepseek-r1 หรือ
openai/gpt-oss) จะไม่ถูกจัดว่าผูกกับ cloud เมื่อ engine ที่ใช้งานจริงเป็น
local อย่างชัดเจน เช่น Ollama
ระดับสถานะ¶
| สถานะ | ความหมาย |
|---|---|
fail |
องค์ประกอบ configuration น่าจะเข้ากันไม่ได้กับการใช้งานแบบ local-only ที่เข้มงวด |
warn |
พื้นผิวที่ตั้งค่าไว้อาจส่งข้อมูลออกนอก runtime ในเครื่อง หรือเก็บข้อมูล sensitive ไว้ถาวร |
info |
มีการตั้งค่าหรือที่เก็บข้อมูลในเครื่องที่เกี่ยวข้องอยู่ โดยไม่มีเงื่อนไข fail หรือ warn ทันที |
คำสั่งนี้รายงาน path ข้อมูลที่เป็นไปได้ ไม่ได้พิสูจน์ว่า path นั้นถูกใช้ จริงในการรันครั้งใดครั้งหนึ่ง
ผลลัพธ์ JSON มี "schema_version": 1 สำหรับการ parse ที่เสถียรในขั้นตอนถัดไป
Checklist สำหรับ Local-only แบบเข้มงวด¶
สำหรับการตั้งค่า local-only แบบระมัดระวัง ตรวจสอบการตั้งค่าเหล่านี้:
[analytics]
enabled = false
[traces]
enabled = false
[telemetry]
enabled = false
[agent]
context_from_memory = false
[intelligence]
provider = ""
preferred_engine = ""
default_model = "" # local model name only
[engine]
default = "ollama" # or another local engine
[tools]
enabled = ""
[tools.storage]
enabled = false
[tools.mcp]
enabled = false
servers = ""
[channel]
enabled = false
[learning]
enabled = false
auto_update = false
training_enabled = false
[learning.spec_search]
enabled = false
[server]
host = "127.0.0.1"
[security]
profile = "personal"
[a2a]
enabled = false
ให้ยกเลิกการตั้งค่า credential ของ cloud และ channel จาก process environment ด้วยเมื่อไม่จำเป็นต้องใช้
ขอบเขตและสิ่งที่ไม่ครอบคลุม¶
การสแกนนี้ตั้งใจหลีกเลี่ยงการอ่านข้อมูลส่วนตัว โดยเฉพาะ มันจะไม่:
- อ่านเนื้อหา JSON ของ connector หรือ OAuth scope
- ตรวจสอบ
localStorageของเบราว์เซอร์ หรือ secure storage ของ Tauri - ตรวจสอบที่เก็บ credential ฝั่ง frontend โดยตรง
- ตรวจสอบซอร์สโค้ดของ skill ที่ติดตั้งไว้
- ดักจับ network traffic ตอน runtime
- จัดประเภทนโยบายการเก็บรักษาหรือ training ของผู้ให้บริการ
- พิสูจน์ว่า path ที่ตั้งค่าไว้ถูกใช้จริงตอน runtime
ที่เก็บ credential ฝั่ง frontend ถูกติดตามแยกต่างหากจากเครื่องมือวินิจฉัย CLI นี้ หากมีพื้นผิว cloud/API-key อยู่ การสแกนจะแสดงหมายเหตุขอบเขตระดับ ข้อมูล เพื่อให้ผู้ใช้รู้ว่าต้องรีวิวที่เก็บ credential ของเบราว์เซอร์/Tauri แยกต่างหาก
การ Resolve Configuration¶
การสแกนนี้ทำตามการ override configuration แบบชัดเจนเดียวกับที่ runtime ใช้:
หากตั้งค่า OPENJARVIS_CONFIG ไว้ ไฟล์นั้นจะถูกตรวจสอบ มิฉะนั้นการสแกนจะใช้
path config เริ่มต้นของ OpenJarvis ใต้ home ของ OpenJarvis ที่ resolve ได้
หากไม่สามารถ resolve ไดเรกทอรี home ได้ คำสั่งจะรายงานข้อค้นพบ
config-root-error แทนที่จะ crash
ดูเพิ่มเติม¶
- Security — โมเดลความปลอดภัยสามชั้น (host scan, config scan, BoundaryGuard)
- Configuration — เอกสารอ้างอิง config แบบเต็ม