บทความทั้งหมด
เหตุการณ์เพิ่ม อัปเดต และลบแถว Postgres ที่ส่งจากฐานข้อมูล Supabase ไปยังปลายทางเว็บฮุกในเครื่องที่ปลอดภัย
Supabasedatabase webhooksPostgreslocal development

ทดสอบ Supabase Database Webhooks บน localhost

เพื่อทดสอบ PPEXTERM00001XPP PPPEMTER00000XP บนเครื่องในท้องถิ่น ใช้ host.docker.internal เมื่อทั้ง PPEXTERM00002XP และเครื่องรับของคุณทํางานบนเครื่องของคุณ หรือใช้อุโมงค์ PPEXTERM00XP สาธารณะ เมื่อโครงการ PPPP Post ATER ATER ESM00003XP ต้องเรียกโปรแกรมของคุณ ความแตกต่างที่สําคัญ: Postgres ทํางานใน PPXTERM00006XP, ที่ localhost หมายถึงตู้ฐานข้อมูล ขณะที่เครื่อง PPXTER00007XP ต้องการที่อยู่ URL ที่เข้าถึงได้ทางอินเทอร์เน็ต

สิ่งที่ Supabase PPEM00008XP ส่ง

PPXTERM00010XP ตอบสนองต่อ PPPPPPPPPPPPMTERM00011XPP INSERT. UPDATEและ DELETE ปฏิบัติการบนโต๊ะที่เลือก PPEXTERM00012-XP อธิบายพวกเขาว่าเป็นการพันพันรอบตัวกระตุ้น pg_net ขยาย รายการที่เปลี่ยนแถวไม่ได้รอผู้รับของคุณเพื่อเสร็จสิ้นตรรกะธุรกิจซึ่งลดความเหมาะสม แต่ยังหมายความว่าผู้รับต้องสังเกตเห็นและล้มเหลว

The PPXTERM00013XP Office ระบุการดําเนินการ, Chema, และตาราง รวมข้อมูลแถวด้วย สําหรับการแทรกและปรับปรุง record มีแถวใหม่อยู่ สําหรับการปรับปรุงและลบ old_record ให้แถวก่อนหน้าที่มี การ สร้าง ผู้ ดู แล รอบ ซอง เอกสาร แทน ที่ จะ ปฏิบัติ ตาม คํา ขอ ทุก อย่าง เป็น เพียง วัตถุ แถว.

สแต็กในเครื่องกับโครงการโฮสต์

Supabase บนเครื่อง: ใช้โฮสต์ PPEXTERM00015XP

เมื่อคุณวิ่ง supabase startPPEXTERM00016XP อยู่ภายในตู้คอนเทนเนอร์ ที่อยู่ URL ของเว็บฮุค เช่น http://localhost:3000/api/supabase-db-hook วนกลับไปที่ตู้คอนเทนเนอร์ และมักจะล้มเหลว PPEXTERM00017XP อย่างเป็นทางการ เอกสาร PPEXTERM00018XP ให้บอกเป้าหมาย host.docker.internal-

http://host.docker.internal:3000/api/supabase-db-hook

เส้นทางนี้ไม่ต้องการอุโมงค์สาธารณะ บนเครื่องยนต์ PPXTERM00021XP ที่ไม่มีชื่อโฮสต์ให้ใช้ตําแหน่ง โฮสต์-เกตเวย์ ที่รองรับโดยการตั้งค่า PPXTERM220XP ของคุณ หรือที่อยู่ LNP ของเครื่องของคุณ ตามคําแนะนํา PPP PDF ยืนยันจากตู้คอนเทนเนอร์ ไม่ใช่แค่จากเบราว์เซอร์

โฮสต์ Supabase สําหรับโปรแกรมท้องถิ่น: ใช้ PPXTERM00023XP

ฐานข้อมูลเมฆไม่สามารถแก้ไขที่อยู่ส่วนตัวแบบวนรอบ PPP ได้ เริ่มโปรแกรมภายในแล้วเรียกทํางาน npx portpreview 3000จากนั้น การปรับแต่ง:

https://your-subdomain.portpreview.dev/api/supabase-db-hook

ใช้โครงการพัฒนา หรือตารางที่มีความเสี่ยงต่ํา เว็บฮุคเมฆสามารถรวมข้อมูลแถวจริงได้ ดังนั้นการเปิดเผยตารางการผลิตไปยังที่อยู่ URL ชั่วคราว

สร้างตัวรับที่ตรวจสอบความลับที่ใช้ร่วมกัน

ไม่เหมือนกับผู้ให้บริการที่กําหนดคําสั่ง PPXTER00027XP ส่วนหัว PPP PP PP การร้องขอแบบ PPP USP MONDXXXXP แบบปรับแต่งให้ทํางานนอกระบบ PPPP ได้ ป้องกันจุดปลายด้วยส่วนหัวลับ คุณควบคุมและปรับแต่งหัวกระดาษเดียวกันบนเว็บฮุค PPEXTERM00028XP ป้องกันมันในการขนส่ง; การเปรียบเทียบตลอดเวลาจะหลีกเลี่ยงการปล่อยข้อมูลลับผ่านโปรแกรมของคุณ

// app/api/supabase-db-hook/route.ts
import crypto from 'node:crypto';

function safeEqual(a: string, b: string) {
  const left = Buffer.from(a);
  const right = Buffer.from(b);
  return left.length === right.length &&
    crypto.timingSafeEqual(left, right);
}

export async function POST(request: Request) {
  const supplied = request.headers.get('x-webhook-secret') ?? '';
  const expected = process.env.SUPABASE_DB_WEBHOOK_SECRET ?? '';

  if (!expected || !safeEqual(supplied, expected)) {
    return new Response('unauthorized', { status: 401 });
  }

  const payload = await request.json();
  if (!['INSERT', 'UPDATE', 'DELETE'].includes(payload.type)) {
    return new Response('unsupported event', { status: 400 });
  }

  await recordDelivery(payload);
  return new Response('accepted', { status: 200 });
}

หัว เรื่อง ที่ มี ส่วน ร่วม พิสูจน์ ความ รู้ เกี่ยว กับ ความ ลับ แต่ ไม่ ได้ ผูก โยง ความ ลับ นั้น เข้า กับ ร่าง กาย. ถ้าจําเป็นต้องใช้หลักฐานระดับร่างกายที่เปลี่ยนแปลงได้ ก็ส่ง PPPER00029XP ไปยัง PPP เล็กที่เชื่อถือได้ PPP STXTERM00030XP ที่ตรวจสอบความลับภายในตัวเอง คํานวณ PPPP ของคุณที่ถูกเลือกให้คํานวณ PPPER00031XP ผ่านร่างกายภายนอก และส่งต่อไปยังผู้ซื้อหรือผู้บริโภคท้องถิ่น อย่าประดิษฐ์ X-Supabase-Signature สันนิษฐานได้เว้นแต่ว่าชั้นของคุณ จะสร้างและยืนยันได้

ปรับแต่งและเรียกเว็บฮุคที่โฟกัส

  1. เลือกตารางพัฒนาและตัดสินว่าปฏิบัติการไหนสําคัญ
  2. สร้าง PPEXTERNM00032XP ใน PPEXTER00033XP Daechboard ภายใต้ฐานข้อมูล → webooks, เลือก Schema, Table และดําเนินการ
  3. ตั้งค่าที่อยู่ URL ของ PPEXTERM00034XP หรือที่อยู่ URL ในอุโมงค์สาธารณะที่อธิบายไว้ด้านบน
  4. เพิ่ม Content-Type: application/json และสุ่มเลือก X-Webhook-Secret ค่าที่ค่าปรับแต่งค่าหัวของเว็บฮุกมี
  5. เริ่มตัวรับและใส่แถวทดสอบป้ายอย่างชัดเจน
  6. ปรับปรุงช่องข้อมูลหนึ่งช่อง แล้วลบแถว เพื่อตรวจสอบอีเมลที่เลือกไว้ทั้งหมด
  7. ลบหรือปิดการจับเว็บการทดสอบ ก่อนที่จะสลับโครงการหรือปิดอุโมงค์

ชื่อแถวการทดสอบเพื่อให้ทําความสะอาดเป็น continuous อย่ายิงการรวมกันของโต๊ะ ที่สถิติการผลิตลูกค้า เพียงเพื่อดูคําขอที่มาถึง

Enterpril PPEXTERNM00035XP, PPPPPPP PPP, PPPP THER0003636XP, และ PPEXTERM00037XP อย่างปลอดภัย

INSERT

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

UPDATE

เทียบ record ด้วย old_record และกระทําเฉพาะในสาขาที่เกี่ยวข้องกับการรวม การปรับปรุงทั่วไปเว็บฮุคอาจยิงสําหรับเวลา กําหนดหรือข้อมูลกํากับที่ไม่เกี่ยวข้อง การกรองการเปลี่ยนแปลงของธุรกิจที่ไม่สามารถป้องกัน การโทรตามสายน้ําที่แพงได้

PPEXTERM00040XPP

แถวที่ลบไปแล้ว แสดงด้วยข้อมูลก่อนหน้า แทนที่จะใช้แผ่นเสียงปัจจุบัน ทํา ให้ ผู้ ดู แล การ ลด น้ํา หนัก ยอม ทน กับ การ ขาด ทุ่ง นา ที่ ไม่ มี ทาง เลือก และ ตัดสิน ใจ ว่า การ ทํา ตาม ขั้น ตอน ของ กระแส น้ํา จะ เป็น การ ลด ลง, การ ย้าย ถิ่น, หรือ การ อธิษฐาน. รักษาความต้องการการตรวจสอบ

switch (payload.type) {
  case 'INSERT':
    await mirror.upsert(payload.record.id, payload.record);
    break;
  case 'UPDATE':
    if (payload.old_record.status !== payload.record.status) {
      await syncStatus(payload.record.id, payload.record.status);
    }
    break;
  case 'DELETE':
    await mirror.archive(payload.old_record.id);
    break;
}

ความไว้วางใจในการส่งเป็นความกังวลของโปรแกรม

เนื่องจาก PPXTERM00041XP นั้นเป็นการร้องขอจากเครือข่ายที่ไม่ต่อเนื่อง, อย่าถือใบแจ้งหนี้เป็นการแจกจ่าย ระยะไกลของคุณอาจจะไม่สามารถใช้ได้หลังจากมี PostgresPPPPP ทํางานแล้ว จง เฝ้า ดู ผล ของ การ ขอ โดย ไม่ มี เงื่อนไข และ การ ออก แบบ เพื่อ จะ ได้ สิ่ง ใด ๆ ที่ ไม่ อาจ สูญ เสีย ไป ได้.

สําหรับการทํางานที่มีค่าสูง ตารางกล่องออกจะเข้มแข็งขึ้น: เขียนการเปลี่ยนแปลงธุรกิจและแถวออกจากฐานข้อมูลในหนึ่ง ธุรกรรม แล้วให้คนงานส่งมอบด้วย PPEXTERM00043XP สามารถแจ้งให้พนักงานทราบได้ แต่การจัดหมู่ควรจะยังคงไม่พบแถวที่ส่งออกจากกล่อง

ทําให้ตัวรับเสียโฉม กุญแจที่มีประโยชน์จะรวมแหล่งกําเนิด, ตาราง, ปฏิบัติการ, คีย์หลัก, และรุ่นที่เสถียรเช่น updated_at2549; สําหรับการรับประกันอย่างเข้มงวด เพิ่มเหตุการณ์ PPXTER00044XP ในแถวนอก จง หลีก เลี่ยง การ ทํา ให้ เพียง แถว ปัจจุบัน เท่า นั้น เพราะ การ เปลี่ยน แปลง ที่ ใช้ ได้ สอง อย่าง อาจ ทํา ให้ เกิด การ คิด แบบ เดียว กัน ได้.

เรียกเครื่อง PSupabasePPPPPPPPPTERM00045XPP

ถ้าปลายทางเป็น PPXTERNM00047XP ให้บริการโดย PPP ท้องถิ่น PPEXTERM00048XP ตัวอย่างคือ:

http://host.docker.internal:54321/functions/v1/my-function-name

เจ้าหน้าที่ คู่มือการพัฒนา PPXTERM00049XP ใช้ supabase functions serve [function-name] สําหรับเครื่องยิงความร้อนภายใน PPEXTERM00050XP ต้องการ PPPPPP PPP TPP THP THP TIFE 20001XP Excorder โดยค่าปริยาย สําหรับฟังก์ชันเว็บฮุคที่ไม่สามารถให้ ผู้ใช้ PPPP ได้ เช่น การปรับแต่งฟังก์ชันดังกล่าว โดยเจตนาแล้ว เป็นต้น verify_jwt = false ใน supabase/config.tomlเป็นเอกสารใน การปรับแต่งฟังก์ชัน.... แทนที่การตรวจสอบสิทธิ์ PPXTERM200053XP ด้วย Secret-header หรือลายเซ็นของคุณ; ปิดการใช้งาน PPEXTERM00054XP เพียงอย่างเดียวจะทําให้ฟังก์ชันเป็นสาธารณะ

Internation PPXTERM000553 XPP webhost คลอดเครื่องภายใน

การเชื่อมต่อถูกปฏิเสธจากสแต็กภายใน

แทนที่ localhost ด้วย host.docker.internal2551. สืบค้นเมื่อ App ถูกเชื่อมต่อไปยังส่วนติดต่อจาก PPXTERM00056XP และยืนยันพอร์ต on PPEXTERM00057XP, ปรับแต่งมติของเครื่องโฮสต์หรือใช้ IP การ รับ ใช้ ที่ มี เฉพาะ ผู้ ที่ ไม่ คาด คิด เท่า นั้น อาจ ยัง คง ปฏิเสธ การ จราจร ใน ตู้ สินค้า.

โครงการเจ้าภาพไม่เคยไปถึงเส้นทาง

โปรเจกต์ที่เป็นเจ้าภาพต้องการ ตําแหน่งที่อยู่ URL ของอุโมงค์ PPP (PPEX) PDF ไม่ใช่ PPEXTERM00058XP ยืนยันการถ่ายทอดสดของอุโมงค์ และที่อยู่ URL ของมันรวมถึงเส้นทางที่สมบูรณ์ Check DNS/PPPERM00060XPP โดยโพสต์ไปยังตัวเอง

เส้นทางที่ส่งกลับมา 401

เปรียบ เทียบ ชื่อ และ ค่า ของ หัว เรื่อง ที่ ได้ รับ การ ปรับ ปรุง แล้ว ดู ว่า อยู่ ใน ตําแหน่ง ที่ นํา หน้า หรือ ติด ตาม ช่องว่าง ใด และ เริ่ม ต้น โปรแกรม ใหม่ หลัง จาก เปลี่ยน ตัวแปร สิ่ง แวด ล้อม. บันทึกว่าจะให้มีส่วนหัวอยู่หรือไม่ ไม่ใช้ค่าของมัน หากหัวจดหมายที่กําหนดเอง Authorization: Bearer ... ส่วนหัวและตรวจสอบอย่างชัดเจน

การโหลดดูเหมือนจะผิด

บันทึกเฉพาะกุญแจชั้นบนสุด, ปฏิบัติการ, Chema และตารางในการพัฒนา จําไว้ว่า PPXTERM2922XP ใช้ข้อมูลแถวก่อนหน้า และ PPXTERM2561XP สามารถรวมทั้งสองรุ่นได้ ตรวจสอบกับตัวอย่างการโหลดของเจ้าหน้าที่ในปัจจุบัน ก่อนที่จะเปลี่ยนตัววิเคราะห์ของคุณ

การปรับปรุงฐานข้อมูลประสบความสําเร็จ แต่งานสายน้ําเสีย

พฤติกรรมนี้เป็นไปได้ ในการออกแบบที่โดดเด่น ตรวจสอบการร้องขอเว็บฮุกและ pg_net การ ตรวจ สอบ ที่ มี อยู่ ใน สภาพ แวด ล้อม ของ คุณ แล้ว ก็ เพิ่ม การ พยายาม ปรับ ปรุง หรือ การ คืน ดี แทน ที่ จะ กลับ ไป ทํา ธุรกิจ เดิม.

รายการรักษาความปลอดภัย

  • ใช้ PPXTERM00063XP สําหรับการทดสอบเครื่องรับส่ง และหมุนความลับที่ใช้ร่วมกันชั่วคราวหลังจากนั้น
  • ส่ง เฉพาะ คอลัมน์ ที่ จําเป็น; หลีก เลี่ยง การ เปิดโปง ตาราง ที่ ไว หรือ ปริมาณ สินค้า ที่ ผลิต ออก มา อย่าง กว้าง ขวาง.
  • ทํา การ ตรวจ สอบ ด้วย หัว ที่ เป็น ความ ลับ ก่อน หด ตัว หรือ ไม่ ก็ ยืน ยัน ร่าง กาย.
  • ปรับใช้ POST เท่านั้น rout, ize-size, ศูนย์ควบคุมอัตรา, และ reacted logs
  • ใช้การปรับแต่งระบบภายใน, การแสดง, และการผลิตเว็บฮุค
  • จง เสริม สร้าง ความ เข้ม แข็ง, ความ ไม่ มี อํานาจ, การ เฝ้า ดู, และ การ คืน ดี กัน สําหรับ เหตุ การณ์ สําคัญ ๆ.
  • ปิดที่อยู่ URL ของเว็บฮุคชั่วคราว เมื่ออุโมงค์ปิด

ข้อผิดพลาดท้องถิ่นที่นิยมมากที่สุด คือ การติดต่อจากเครือข่าย ไม่ใช่ PPPXTERNM00065XPP: การใช้งานโทรภายในเครื่อง host.docker.internalเสียงเรียกของเมฆ ใช้อุโมงค์สาธารณะ เมื่อ การ จราจร มา ถึง การ ทํา ให้ แน่ ใจ ว่า มี การ ออก แบบ ที่ ต่าง กัน. ทบทวน ระบบรักษาความปลอดภัยในอุโมงค์ และ รูปแบบความน่าเชื่อถือของ web ก่อนที่จะเชื่อมต่อข้อมูลสําคัญ

คำถามที่พบบ่อย

ทําไม PSupabase PPXTERM00000XP ไม่เข้าถึงเครื่องภายใน?
PPEXTERM00003XPPP PPPP ดําเนินการใน PPXTER 06XP ดังนั้นเครื่องในท้องถิ่นจึงอ้างถึงคอนเทนเนอร์ ใช้ PPEXTERM00002XP หรือ IP ของคุณ PPEXTERM00004XP แทนที่ต้องการที่อยู่ URL ในอุโมงค์ PPP PP
ผมต้องการอุโมงค์สําหรับ PPXTER00009XPPPP PPEXTERM00008XP รึเปล่า?
ไม่ เมื่อทั้ง PPPXTERM00010XP และตัวรับสัญญาณอยู่ในระบบ ใช้ PPXTERM00012XP rout คุณต้องการอุโมงค์เมื่อโครงการ PPXTER00011XP ที่บรรจุอยู่ ต้องเรียกโปรแกรมที่กําลังทํางานอยู่บนคอมพิวเตอร์ของคุณ
PPEXTERM00014P PPP ATERM00013XP ลงนามโดยอัตโนมัติหรือไม่?
อย่าสมมุติว่าเป็นส่วนหัวแบบ PPXTERM00015XP ปรับแต่งและตรวจสอบส่วนหัวลับที่ใช้ร่วมกัน ถ้าคุณต้องการลายเซ็นแบบเต็มทั้งร่างกาย, ส่งต่อผ่านทางฟังก์ชันที่เชื่อถือได้ที่สร้าง PPXTERM00016XP ตัวตรวจจับของคุณ มั่นใจได้
PPPXTERM00018PP PPEP PERM00017XP ส่งข้อมูลอะไร?
The PPXTERM22XP POP. ระบุว่า PPPP PPPP STXTER2020XP (PDF) หรือ PPEXTM00021XP บวก Schema และ Table. มันรวมสถิติใหม่สําหรับแทรกและปรับปรุงข้อมูลแถว และข้อมูลแถวก่อนหน้า สําหรับการปรับปรุงหรือลบที่ที่มีอยู่