ขอแนะนำแพ็คเกจ Python และ CLI ของ Oblivious!

Feb 10 2023
‍ เรารู้สึกตื่นเต้นที่จะประกาศเปิดตัวแพ็คเกจ Python ของเราที่รวมเข้ากับ cli รุ่นนี้ช่วยลดการใช้ OpenAPI ของเราลงอย่างมากและปรับปรุงเวิร์กโฟลว์ของลูกค้า

‍ เรารู้สึกตื่นเต้นที่จะประกาศเปิดตัวแพ็คเกจ Python ของเราที่รวมเข้ากับ cli รุ่นนี้ช่วยลดการใช้ OpenAPI ของเราลงอย่างมากและปรับปรุงเวิร์กโฟลว์ของลูกค้า

ได้รับความอนุเคราะห์จาก AbsolutVision บน Unsplash

พื้นหลัง

ให้เราพูดเพิ่มเติมเกี่ยวกับObliviousก่อนดำเนินการต่อ พวกเราที่ Oblivious ทำงานเพื่อปรับปรุงเทคโนโลยีความเป็นส่วนตัวและช่วยในการประมวลผลข้อมูลที่เป็นความลับอย่างโปร่งใส เครื่องมือของเราช่วยให้คุณสร้างและปรับใช้ API โดยใช้เครือข่ายที่ปลอดภัยบนแพลตฟอร์มคลาวด์ เอกสารของเราอธิบายรายละเอียดอย่างมากว่าเราบรรลุสิ่งเดียวกันได้อย่างไร เครื่องมือของเราสามารถใช้สำหรับการปรับใช้ได้สองวิธี วิธีแรกผ่าน Console UI ของเราและวิธีที่สองผ่านOpenAPI ของเรา

กล่าวโดยย่อ เครื่องมือของเราช่วยให้คุณสร้างอิมเมจนักเทียบท่าและปรับใช้กับวงล้อมที่ปลอดภัย พวกเขายังมีพร็อกซีที่ปลอดภัยที่ให้คุณเชื่อมต่อกับวงล้อมโดยไม่จำเป็นต้องเชื่อถือโฮสต์

รุ่นนี้มีไว้เพื่อมอบวิธีที่ง่ายกว่าในการโต้ตอบกับ OpenAPI ด้วยแพ็คเกจ python PyOblvและ cli oblv-ctlของเรา

PyOblv‍

PyOblvเป็นแพ็คเกจ python ที่ใช้ OpenAPI ทั้งหมดที่อธิบายโดย Oblivious แพ็คเกจอนุญาตให้มีการโต้ตอบกับ API โดยไม่จำเป็นต้องอ่านเอกสารประกอบหรือเข้าใจการใช้งาน สามารถรวมเข้ากับแอปพลิเคชันของคุณได้อย่างง่ายดาย และลดความจำเป็นในการเยี่ยมชมแดชบอร์ดเมื่อใดก็ตามที่คุณต้องการนำการปรับใช้

oblv-ctl‍

เมื่อคุณติดตั้งPyOblvคุณจะได้รับการติดตั้ง CLI ด้วย คำสั่งoblv-ctlจะช่วยให้คุณดำเนินการทั้งหมดที่กำหนดไว้ในแพ็คเกจได้โดยตรงจากบรรทัดคำสั่ง เครื่องมือนี้มีประโยชน์เมื่อผู้ใช้ต้องการหลีกเลี่ยงการเขียนสคริปต์เมื่อเรียกใช้ Oblv APIs

เริ่มต้นใช้งาน

หากต้องการเริ่มต้นการเดินทาง ของคุณกับ Oblivious คุณสามารถลงทะเบียนได้ที่Oblivious Console เมื่อลงทะเบียนแล้ว ให้ย้ายไปที่หน้าจอการตั้งค่า ในการตั้งค่า คุณจะเห็นตัวเลือกในการสร้างคีย์ API เก็บกุญแจนี้ไว้ในมือ

ด้วยคีย์นี้ คุณสามารถตรวจสอบตัวเองผ่าน PyOblv และ oblv-ctl และดำเนินการสร้างวงล้อมได้

การรับรองความถูกต้อง

สคริปต์ไพ ธ อนจะดำเนินการต่อตามที่แสดงด้านล่าง ไคลเอนต์ที่สร้างขึ้นประกอบด้วยการดำเนินการทั้งหมดที่คุณสามารถทำได้

from oblv import authenticate 
‍
client = authenticate(apikey=*your_api_key*)

oblv-ctl login *your_api_key*‍

from oblv import authenticate‍
client = authenticate (apikey=*your_api_key*) 
client.add_service(repo_owner="ObliviousAI", repo_name="FastAPI-Enclave-Services", ref="master")‍

  • base_image — อิมเมจนักเทียบท่าฐาน มีไม่กี่ตัวเลือกที่คุณสามารถเลือกได้
  • oblv_ubuntu_18_04_proxy — บริการลืมเลือนที่อยู่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api — Oblivious Services พร้อมด้วย NSM API ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_python_3_8 — Oblivious Services พร้อมด้วย Python 3.8 ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_python_3_8 — Oblivious Services พร้อมด้วย Python 3.8 และ NSM API ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_python_3_9 — Oblivious Services พร้อมด้วย Python 3.9 ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_python_3_9 — Oblivious Services พร้อมด้วย Python 3.9 และ NSM API ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_node_14 — Oblivious Services พร้อมด้วย NodeJs 14 ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_node_14 — Oblivious Services พร้อมด้วย NodeJs 14 และ NSM API ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_node_16 — Oblivious Services พร้อมด้วย NodeJs 16 ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_node_16 — Oblivious Services พร้อมด้วย NodeJs 16 และ NSM API ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_node_18 — Oblivious Services พร้อมด้วย NodeJs 18 ที่ด้านบนของ Ubuntu 18.04
  • oblv_ubuntu_18_04_proxy_nsm_api_node_18 — Oblivious Services พร้อมด้วย NodeJs 18 และ NSM API ที่ด้านบนของ Ubuntu 18.04
  • auth_name — ชื่อของวิธีการตรวจสอบสิทธิ์
  • auth_type — ประเภทของการรับรองความถูกต้องที่ใช้ สำหรับตอนนี้ ค่าเดียวที่อนุญาตคือsign_headers
  • role_name — ชื่อของบทบาท
  • role_description — อธิบายการทำงานของบทบาทนี้
  • role_cardinality — นี่คือจำนวนผู้ใช้ที่สามารถรับบทบาทนี้ได้
  • role_auth — แสดงถึงวิธีการตรวจสอบสิทธิ์ที่กำหนดไว้ก่อนหน้านี้เพื่อใช้ในการตรวจสอบสิทธิ์ผู้ใช้รายนี้
  • เส้นทาง — เส้นทางที่จะต่อท้าย URL ของอินสแตนซ์หลัก การเข้าถึง — รายการที่คั่นด้วยเครื่องหมายจุลภาคของบทบาทที่สามารถเข้าถึงเส้นทางนี้ (ต้องมีอยู่ในบทบาท)
  • short_description — คำอธิบายสั้น ๆ ของฟังก์ชันเส้นทาง
  • ชื่อ — ชื่อของอาร์กิวเมนต์บิลด์
  • ประเภท — ประเภทของอาร์กิวเมนต์ ค่าที่ยอมรับได้คือ {number, string, integer, boolean}
  • required_arg — แสดงว่าอาร์กิวเมนต์นี้จำเป็นหรือไม่บังคับสำหรับการสร้างบริการ เป็นค่าบูลีน
  • ขาเข้า — รายการของพอร์ตที่อนุญาตทราฟฟิกขาเข้า แต่ละวัตถุในรายการควรมี
  • ชื่อ — ชื่อการจราจร
  • ประเภท — ประเภทการจราจร อนุญาตเฉพาะTCP เท่านั้น
  • พอร์ต — พอร์ตจราจร
  • ขาออก — อนุญาตการจราจรขาออกจากวงล้อม ปล่อยให้เป็นรายการว่างในกรณีที่ไม่มีทราฟฟิกขาออก แต่ละวัตถุควรมี -
  • ชื่อ — ชื่อการจราจร
  • ประเภท — ประเภทการจราจร อนุญาตเฉพาะTCP เท่านั้น
  • โดเมน — ส่วน FQDN ของ URL ที่อนุญาตการเข้าถึง ตัวอย่าง: console.oblivious.ai
  • พอร์ต — พอร์ตจราจร
  • ผู้เขียน — ชื่อผู้เขียนบริการ (คั่นด้วยเครื่องหมายจุลภาค)
  • author_email — อีเมลของผู้เขียนบริการ (คั่นด้วยเครื่องหมายจุลภาค)
  • git - แหล่ง GIT
  • เวอร์ชัน — เวอร์ชันของบริการ (Major.Minor.Patch)
  • docs — ตำแหน่งของไฟล์ markdown หรือโฟลเดอร์ของ markdown ที่มีไฟล์ชื่อindex.md อย่างน้อยหนึ่งไฟล์
  • Links_sec_ops — อาร์เรย์ของประตูคุณภาพเพื่อความปลอดภัยและคุณภาพ

{
  "base_image": "oblv_ubuntu_18_04_proxy_nsm_api_python_3_8",
  "auth": [
    {
      "auth_name": "pkipsk",
      "auth_type": "signed_headers"
    }
  ],
  "roles": [
    {
      "role_auth": "pkipsk",
      "role_cardinality": 2,
      "role_description": "This is simply an example role for demonstration purposes",
      "role_name": "admin"
    }
  ],
  "paths": [
    {
      "access": "admin",
      "path": "/hello/",
      "short_description": "Hello world example"
    }
  ],
  "build_args": [
    {
      "name": "user_name",
      "type": "string",
      "required_arg": true
    }
  ],
  "traffic": {
    "inbound": [
      {
        "name": "inbound",
        "port": 80,
        "type": "tcp"
      }
   ],
  "outbound": [
    {
      "domain": "example.com",
      "name": "example",
      "port": 443,
      "type": "tcp"
    }
  ]
},
"meta": {
  "author": "Team Oblivious",
  "author_email": "[email protected]",
  "git": "https://github.com/ObliviousAI/FastAPI-Enclave-Services.git",
  "version": "0.1.0"
},
}

oblv-ctl service create [OPTIONS] REPO_OWNER REPO_NAME REF

  • –tagหากมีให้ ref จะถือว่าเป็นแท็กบน repository
  • –service-fileไฟล์ Service.yaml ในรูปแบบ JSON ไม่อนุญาตด้วย — แท็ก‍

ในการสร้างวงล้อม คุณต้องตัดสินใจเลือกพารามิเตอร์ -‍

  • Deployment_name — ชื่อการปรับใช้ที่ไม่ซ้ำใคร คุณไม่สามารถมี
    การเรียกใช้การปรับใช้สองรายการด้วยชื่อเดียวกัน
  • region_name — อาจเป็นหนึ่งในภูมิภาค AWS จาก
  • เรา-ตะวันออก-1 (เวอร์จิเนียเหนือ)
  • เราตะวันตก-2 (ออริกอน)
  • eu-central-1 (แฟรงค์เฟิร์ต)
  • eu-west-2 (ลอนดอน)
  • ทัศนวิสัย — ส่วนตัวหรือสาธารณะ
  • is_dev_env — จริงหรือเท็จ _
  • แท็ก — รายการแท็กสำหรับการใช้งานของคุณ
  • account_type — นี่คือประเภท VCS และ
    รองรับเฉพาะ GitHub*** เท่านั้นในตอนนี้
  • build_args — อาร์กิวเมนต์เฉพาะสำหรับการปรับใช้ของคุณ ซึ่งรวมถึงการเพิ่มผู้ใช้ในบทบาทของพวกเขาด้วยคีย์สาธารณะ อาร์กิวเมนต์รันไทม์ และ
    อาร์กิวเมนต์เพิ่มเติมสำหรับบิลด์ของคุณ นอกจากนี้ยังมี
    ขนาดอินฟาเรดที่จำเป็นสำหรับการปรับใช้ ตัวเลือกคือ -
  • c5.xlarge — CPU:4 RAM:8 GB — การใช้เครดิต: 68.0/ชม
  • m5.xlarge — CPU:4 RAM:16 GB — การใช้เครดิต:
    76.8/ชม
  • r5.xlarge — CPU:4 RAM:32 GB — การใช้เครดิต:
    100.8/ชม.
  • c5.2xlarge — CPU:8 RAM:16 GB — การใช้เครดิต:
    136.0/ชม.
  • m5.2xlarge — CPU:8 RAM:32 GB — การใช้เครดิต:
    153.6/ชม.

args = {
  "users": {
    "admin": [
      "user_name": "<your name>",
      "public key": "<your publickey>"
    ]
  },
  "infra_reqs":"m5.xlarge"
}‍

from oblv.models import CreateDeploymentInput
input = CreateDeploymentInput(
  owner="ObliviousAI",
  repo="FastAPI-Enclave-Services",
  account_type="github", ref="master",
  region-name="us-east-1", deployment="Depl",
  visibility="private",
  is_dev_env=True,
  tags=[],
  build_args=args
)
deployment = client.create_deployment(input)‍

oblv-ctl deployment create [OPTIONS] REPO_OWNER REPO_NAME REF NAME

  • –สาธารณะหากมี การปรับใช้จะถูกทำให้เป็นสาธารณะ มิฉะนั้นจะยังคงเป็นส่วนตัวและไม่ปรากฏแก่ผู้ใช้รายอื่น
  • –is-devตั้งค่าสภาพแวดล้อมของการปรับใช้เป็น DEV
  • –regionภูมิภาคที่จะปรับใช้วงล้อม ตัวเลือกประกอบด้วย ["us-east-1" (เวอร์จิเนียเหนือ), "us-west-2" (ออริกอน), "eu-central-1" (แฟรงค์เฟิร์ต), "eu-west-2" (ลอนดอน)] . ค่าเริ่มต้นคือus-east-1
  • เส้นทางไฟล์อาร์กิวเมนต์–args-file สำหรับการปรับใช้แบบวงล้อม

ด้วยสคริปต์หลาม:

client.remove_deployment("<your_deployment_id>")

oblv-ctl deployment terminate DEPLOYMENT_ID‍

‍ ขณะนี้ API ของเราอยู่ในอัลฟ่าและได้รับการอัปเดตเป็นประจำ ทำให้มีการอัปเดตบ่อยครั้งสำหรับแพ็คเกจของเรา ขณะนี้มีการดำเนินการประมาณ 28 รายการที่สนับสนุนโดย PyOblv แต่จำนวนนี้จะเพิ่มขึ้นเมื่อมีการเผยแพร่ในอนาคตเพื่อให้การสนับสนุนเพิ่มเติมในวงล้อม

หากคุณ ต้องการคำชี้แจงเพิ่มเติมหรือมีความคิดที่จะแบ่งปัน โปรดติดต่อเราได้ที่Discord
‍ หากคุณมีคำขอคุณลักษณะเพิ่มเติมหรือจุดบกพร่องที่คุณต้องการให้เราแก้ไข โปรดเพิ่มที่นี่ !