ข้ามไปที่เนื้อหา

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 แบบเต็ม