Keamanan

Menteleoperasikan robot fisik lewat internet membutuhkan lebih dari sekadar formulir login. Halaman ini menjelaskan cara kerja autentikasi dan peran, cara API key seharusnya ditangani, pengaman apa yang melindungi kontrol langsung, apa yang dicatat audit trail, dan cara melaporkan kerentanan.

Terakhir diperbarui 2026-08-09

Autentikasi

Akun dikelola oleh Supabase Auth dengan email dan password, Google OAuth, atau GitHub OAuth. Setelah login, browser Anda menyimpan session token (sebuah JWT) yang diperbarui otomatis oleh platform middleware, sehingga sesi yang aktif tidak diam-diam kedaluwarsa di tengah pekerjaan.

API menerima session token itu dalam dua bentuk: sebagai session cookie yang tetap dikirim dashboard, atau sebagai header Authorization Bearer. Akses terprogram tanpa login browser memakai API key sebagai gantinya, dijelaskan di bawah. Endpoint menolak permintaan tanpa kredensial valid; hanya rute yang eksplisit publik, seperti health check dan formulir kontak, yang bekerja tanpa autentikasi.

Peran dan izin

Setiap akun punya persis satu peran: CLIENT, OPERATOR, atau ADMIN. Client memiliki robot dan membayar sesi, operator mengendalikan robot dan mendapat penghasilan dari sesi, dan admin menjalankan platformnya. Anda memilih antara client dan operator saat onboarding; peran admin ditetapkan oleh administrator platform dan tidak bisa dipilih sendiri.

KemampuanCLIENTOPERATORADMIN
Mendaftarkan dan mengelola robotYaTidakYa
Memulai dan menjalankan sesi teleoperasiTidakYaYa
Melihat sesiPada robot sendiriSesi sendiriSemua
Dataset dan eksporYaTidakSemua
Penagihan, invoice, metode pembayaranYaTidakSemua
Penghasilan dan pembayaranTidakYaSemua
Menyetujui sertifikasiTidakHanya mengajukanYa
Menyelesaikan sengketaHanya mengajukanTidakYa

Pemeriksaan peran terjadi di sisi server pada setiap permintaan, bukan di UI. Di bawah API, akses database dibatasi lebih lanjut dengan kebijakan row-level security, sehingga bahkan bug di sebuah endpoint tidak berubah menjadi akses bebas ke baris data akun lain.

API key

API key memberi script dan server akses tanpa login browser. Anda membuat dan mencabutnya di /dashboard/settings; key membawa awalan ayr_live_ dan dikirim sebagai header Authorization Bearer. Sebuah key bertindak dengan peran dan izin akun yang membuatnya, jadi key yang bocor persis seburuk password yang bocor.

  • Simpan key di sisi server. Key tidak boleh ada di JavaScript sisi client, aplikasi mobile, atau repositori publik.
  • Pakai satu key per integrasi. Ketika sesuatu bocor, Anda ingin mencabut satu konsumen, bukan semuanya.
  • Rotasi tanpa downtime: buat key pengganti dulu, deploy, lalu cabut key lama di /dashboard/settings.
  • Cabut segera pada kecurigaan apa pun. Membuat key baru hanya butuh beberapa detik; penyerang dengan key valid bisa melakukan apa pun yang bisa dilakukan akun Anda.

Pengaman selama kontrol langsung

Kontrol langsung terikat pada session lease. Sebuah robot hanya menerima perintah selama ia berada dalam persis satu sesi ACTIVE, dan hanya dari operator yang memegang sesi itu; robotnya sendiri ditandai IN_SESSION untuk semua orang lainnya. Seorang operator bisa memegang paling banyak satu sesi ACTIVE atau PAUSED sekaligus, yang mencegah satu orang secara nominal mengendalikan dua lengan sekaligus.

Cockpit menyediakan tombol berhenti darurat yang langsung menghentikan lengannya, dan menjeda atau mengakhiri sesi menghentikan alur perintah secara keseluruhan. Selain itu, platform memantau aktivitas operator: setelah periode tanpa input, sebuah peringatan inaktivitas dikirim, dan jika operator tetap inaktif, sesinya dihentikan otomatis. Itu melindungi kedua sisi, client dari membayar waktu idle dan robot dari berada dalam kondisi tak terkendali dengan session lease yang masih aktif.

Audit trail

Setiap sesi menyimpan log event: mulai dan selesai, jeda dan lanjutan, activity check, peringatan inaktivitas, pergantian operator, permintaan perpanjangan, dan error, masing-masing dengan stempel waktu. Saat sebuah sengketa ditinjau, log event ini adalah bukti utama, yang menjadi alasan tambahan mengapa platform menulisnya secara otomatis alih-alih mengandalkan ingatan siapa pun.

Di luar sesi, aksi platform yang signifikan dicatat dalam audit log dengan id pengguna yang melakukan, aksinya, resource yang terpengaruh, dan metadata. Perubahan profil, transaksi yang berkaitan dengan pembayaran, dan aksi admin semuanya meninggalkan entri. Catatan audit ditulis oleh platform dan tidak bisa diedit lewat antarmuka apa pun yang menghadap pengguna.

Enkripsi dan perlindungan data

Semua lalu lintas ke dan dari platform dienkripsi dalam perjalanan dengan TLS, termasuk video stream dan sinyal kontrol. Di lapisan data, kebijakan row-level security membatasi akses database per akun. Data pembayaran adalah batasan paling jelas dari semuanya: kartu dan detail bank ditangani secara eksklusif oleh Stripe dan tidak pernah menyentuh server AY-Robots.

Melaporkan kerentanan

Jika Anda menemukan masalah keamanan, laporkan secara bertanggung jawab lewat halaman /security atau formulir /contact memakai kategori Bug Report. Sertakan apa yang Anda temukan, di mana, dan cara mereproduksinya; jangan mengakses data pengguna lain melampaui minimum yang dibutuhkan untuk mendemonstrasikan masalahnya, dan jangan mempublikasikan detailnya sebelum kami punya kesempatan yang wajar untuk memperbaikinya. Kami membaca setiap laporan.

Pertanyaan yang sering diajukan

Bisakah operator melihat data penagihan saya?

Tidak bisa. Penagihan, invoice, dan metode pembayaran adalah kemampuan khusus peran client. Operator dalam sesi pada robot Anda melihat konteks sesinya, bukan akun atau data pembayaran Anda.

Apa yang terjadi pada robot jika koneksi saya terputus di tengah sesi?

Alur perintah berhenti bersama koneksinya, dan pengaman inaktivitas mengambil alih: setelah periode peringatan tanpa input, sesinya dihentikan otomatis. Client tidak ditagih untuk ekor idle-nya melampaui titik henti itu.

Bagaimana saya merotasi API key dengan aman?

Buat key baru di /dashboard/settings, alihkan integrasi Anda ke key itu, verifikasi bahwa key itu berfungsi, lalu cabut key lama. Melakukannya dalam urutan itu berarti tanpa downtime dan tanpa jeda di mana tidak ada key valid yang tersedia.

Apakah data pembayaran saya disimpan di server AY-Robots?

Tidak. Kartu dan detail bank langsung menuju Stripe. Platformnya hanya menyimpan referensi ke objek Stripe, tidak pernah data pembayaran yang mendasarinya.