User-owned credential
Setiap tenant menyimpan alias credential miliknya sendiri. AI/plugin tidak memakai API key bersama milik platform.
text
User A
└─ OPENAI_KERJA → secret A
User B
└─ AI_PRIBADI → secret BMenggunakan alias
js
aksi: {
gunakan: "ai.chat",
credential: "OPENAI_KERJA",
input: { prompt: "{command.args}" },
simpan: "hasil"
}Alias credential valid menggunakan huruf/angka/underscore dan compiler mengumpulkan dependency credential dari flow.
Secret path
text
GatewayScript: "OPENAI_KERJA"
↓
Capability Registry
↓
Credential Vault
↓ decrypt backend
Trusted plugin handler
↓
credential.values.apiKey- Secret tidak masuk session data.
- Secret tidak masuk compiled JSON.
- Secret tidak dikembalikan oleh API read credential.
- Secret tidak diberikan ke GatewayScript.
- Plugin hanya menerima values ketika capability user tersebut dijalankan.
Publish preflight
Capability dapat mendeklarasikan credential type dan required fields. Publish dapat diblok ketika alias missing, disabled, type mismatch, atau required field tidak tersedia.
Praktik yang disarankan
- Gunakan alias yang menjelaskan environment, misalnya OPENAI_PRODUCTION atau PAYMENT_TEST.
- Jangan menyalin secret ke source script.
- Rotasi credential dari provider ketika diduga bocor.
- Hapus credential yang tidak dipakai setelah memastikan dependency flow sudah dipindahkan.