ā§§ā§Ģ āĻŽāĻžāĻ°ā§āϚ, ⧍ā§Ļ⧍ā§Ģ¡8 āĻŽāĻŋāύāĻŋāϟ āĻĒāĻĄāĻŧāϤ⧇

API āϕ⧀ āϰ⧋āĻŸā§‡āĻļāύ UX: āĻ¸ā§āϕ⧋āĻĒ, āϏ⧇āĻ˛ā§āĻĢ-āϏāĻžāĻ°ā§āĻ­ āϕ⧀ āĻāĻŦāĻ‚ āϞāĻ—

āĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ API āϕ⧀ āϰ⧋āĻŸā§‡āĻļāύ: least-privilege āĻ¸ā§āϕ⧋āĻĒ, āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ— āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāϕ⧇āϟ āĻ•āĻŽāĻžāύ⧋ āύāĻŋāϰāĻžāĻĒāĻĻ self-serve āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰ⧁āύāĨ¤

API āϕ⧀ āϰ⧋āĻŸā§‡āĻļāύ UX: āĻ¸ā§āϕ⧋āĻĒ, āϏ⧇āĻ˛ā§āĻĢ-āϏāĻžāĻ°ā§āĻ­ āϕ⧀ āĻāĻŦāĻ‚ āϞāĻ—

āϕ⧇āύ API āϕ⧀āϗ⧁āϞ⧋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻĒāĻŖā§āϝ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϝāĻŧ⧇ āĻ“āϠ⧇

API āϕ⧀ āĻļ⧁āϰ⧁āϤ⧇ āϏāĻšāϜ: āĻāĻ• āϕ⧀, āĻāĻ• āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύāĨ¤ āϏāĻŽāĻ¸ā§āϝāĻž āĻĒāϰ⧇ āĻĻ⧇āĻ–āĻž āĻĻ⧇āϝāĻŧ, āϝāĻ–āύ āϏ⧇āχ āĻāĻ•āχ āϕ⧀ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āĻ¸ā§āĻĒā§āϰ⧇āĻĄāĻļā§€āĻŸā§‡, Slack āĻŽā§‡āϏ⧇āĻœā§‡ āĻŦāĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡ āĻšāĻžāĻ°ā§āĻĄ-āϕ⧋āĻĄā§‡āĻĄ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ āϝāĻžāϰ āφāϰ āϕ⧋āύ⧋ āĻ āĻŋāĻ•āĻžāύāĻž āύ⧇āχāĨ¤ āϕ⧀ āĻāĻ•āĻŦāĻžāϰ āĻ•āĻĒāĻŋ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇, āφāĻĒāύāĻŋ āĻŽā§ŒāϞāĻŋāĻ• āĻĒā§āϰāĻļā§āύāϗ⧁āϞ⧋āϰ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ āύāĻžâ€”āϕ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇ āĻāĻŦāĻ‚ āϕ⧇āύāĨ¤

āϝ⧇āĻ­āĻžāĻŦ⧇ āϕ⧀āϗ⧁āϞ⧋ āĻ•āĻ–āύ⧋ āĻŦāĻĻāϞ⧇ āύāĻž āϝāĻžāϝāĻŧ āϤāĻž āφāϰ⧇āĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĢāĻžāρāĻĻāĨ¤ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ• āĻšāĻ“āϝāĻŧāĻž āϕ⧀ āϧ⧀āϰ⧇ āϧ⧀āϰ⧇ āĻŽāĻžāϏāĻŦā§āϝāĻžāĻĒā§€ āϭ⧁āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ, āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻŦāĻŋāϞ āĻŦāĻž āĻĄā§‡āϟāĻž āĻĢāĻžāρāϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āϕ⧋āύ⧋ “āĻ–āĻžāϰāĻžāĻĒ” āϘāϟāύāĻž āύāĻž āĻšāϝāĻŧ, āĻāĻ•āϟāĻŋ āĻĒ⧁āϰāύ⧋ āϕ⧀ āϤāĻ–āύāĻ“ āĻā§āρāĻ•āĻŋ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻ…āύ⧇āĻ• āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āφāϛ⧇ āĻāĻŦāĻ‚ āφāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāϏ āύāĻŋāϝāĻŧ⧇ āϤāĻž āϏāϰāĻžāύ⧋ āϝāĻžāϝāĻŧ āύāĻžāĨ¤

āĻ­āĻžāϞ āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āϕ⧇āĻŦāϞ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āύāϝāĻŧāĨ¤ āĻāϟāĻž āϘāϟāύāĻžāϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻ•āĻŽāĻžāϝāĻŧ āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āĻžāϜāĻ“ āĻ•āĻŽāĻžāϝāĻŧāĨ¤ āϝāĻ–āύ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰāϰāĻž āύāĻŋāĻœā§‡āĻĻ⧇āϰ āϕ⧀āϗ⧁āϞ⧋ āĻĻ⧇āĻ–āϤ⧇, āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āύāĻŋāϰāĻžāĻĒāĻĻāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻ–āύ āφāĻĒāύāĻžāϰ āϟāĻŋāĻŽ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āϰāĻŋāϏ⧇āϟ āĻāĻŦāĻ‚ āĻ…āύ⧁āĻŽāĻžāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧāĨ¤

“Self-serve” āĻ­āĻŋāĻ¨ā§āύ āĻ­āĻŋāĻ¨ā§āύ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āϜāĻ¨ā§āϝ āĻ­āĻŋāĻ¨ā§āύ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĒ⧁āϰ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻĒ⧇āϏ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰ⧇āύ, āφāϰ āϏāĻžāϧāĻžāϰāĻŖ āχāωāϜāĻžāϰāϰāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϤāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŦāĻž āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āϝ⧇ āĻ•ā§āώāĻŽāϤāĻž āĻĻāĻŋāϝāĻŧ⧇āϛ⧇ āϤāĻž āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϞāĻ•ā§āĻˇā§āϝ āĻšāĻšā§āϛ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ āĻŽāĻžāϞāĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĒāĻˇā§āϟ āϏ⧀āĻŽāĻž, āϜāϟāĻŋāϞ āĻ…āύ⧁āĻŽāϤāĻŋāϰ āϜāĻžāϞ āϤ⧈āϰāĻŋ āύāĻž āĻ•āϰ⧇āĨ¤

āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āχāωāĻœā§‡āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻāĻ•āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ UX āĻ•āĻˇā§āϟāĻĻāĻžāϝāĻŧāĻ• āĻšāϝāĻŧ, āϞ⧋āϕ⧇āϰāĻž āĻāĻ• “āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āĻ•ā§€â€ āĻŦāĻžāϰāĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒāĻĨ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϟāĻžāχ āϏāĻšāϜ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧ:

  • āĻ…ā§āϝāĻžāĻĒ āĻŦāĻž āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ⧇ āĻĒā§āϰāϤāĻŋ āĻāĻ•āϟāĻŋ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ, āϕ⧋āĻŽā§āĻĒāĻžāύāĻŋāϰ āϜāĻ¨ā§āϝ āύāϝāĻŧāĨ¤
  • āĻĒā§āϰāϤāĻŋāϟāĻŋ āϕ⧀ āϕ⧀ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ (āĻāĻŦāĻ‚ āϕ⧋āĻĨāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāĻŦ⧇) āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āĻ•āϰ⧁āύāĨ¤
  • āĻĻ⧇āĻ–āĻžāύ āϕ⧇ āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻļ⧇āώāĻŦāĻžāϰ āĻ•āĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
  • āϰ⧋āĻŸā§‡āĻļāύāϕ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•, āĻ•āĻŽ-āϚāĻžāĻĒ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāĻžāϰ āĻŽāϤ⧋ āĻ•āϰ⧁āύāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ: āĻāĻ•āϜāύ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ “API āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āĻ¸â€ āϚāĻžāχāϞ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āĻ…āĻĒāĻļāύ āĻĒ⧁āϰ⧋-āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āϕ⧀ āĻšāϝāĻŧ, āφāĻĒāύāĻŋ āχāĻšā§āĻ›āĻžāϰ āĻŦāĻžāχāϰ⧇ āĻŦ⧇āĻļāĻŋ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇āύāĨ¤ āĻāĻ•āϟāĻŋ self-serve āĻĢā§āϞ⧋ āφāĻĒāύāĻžāϕ⧇ āĻĻ⧇āϝāĻŧ āϝ⧇ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āϕ⧀ āχāĻ¸ā§āϝ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āϝ⧇āϟāĻž āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ⧇āϰ āĻ•āĻžāĻœā§‡āϰ āϏāĻžāĻĨ⧇ āĻŽā§‡āϞ⧇, āĻāĻŦāĻ‚ āφāϰ āĻ•āĻŋāϛ⧁ āύāϝāĻŧāĨ¤

āĻŽā§ŒāϞāĻŋāĻ• āϧāĻžāϰāĻŖāĻž: āϕ⧀, āĻ¸ā§āϕ⧋āĻĒ, āĻŽāĻžāϞāĻŋāĻ• āĻāĻŦāĻ‚ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ

āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āϏāĻšāϜ āĻšāϝāĻŧ āϝāĻ–āύ āφāĻĒāύāĻŋ āϜāĻĄāĻŧāĻŋāϤ āĻŽāĻžāύ⧁āώāϗ⧁āϞ⧋āϕ⧇ āύāĻžāĻŽ āĻĻ⧇āύ āĻāĻŦāĻ‚ āĻĻāĻžāϝāĻŧāĻŋāĻ¤ā§āĻŦāϗ⧁āϞ⧋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧇āύāĨ¤ āĻ…āϧāĻŋāĻ•āĻžāĻ‚āĻļ āĻĒā§āϰ⧋āĻĄāĻžāĻ•ā§āĻŸā§‡ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āϚāϰāĻŋāĻ¤ā§āϰ āĻĨāĻžāϕ⧇: āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻŽāĻžāϞāĻŋāĻ• (āύāĻŋāϝāĻŧāĻŽ āĻ āĻŋāĻ• āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻŦāĻŋāϞ āĻĒ⧇āϝāĻŧ āĻ•āϰ⧇), āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ (āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻĒ⧇āϏ āϜ⧁āĻĄāĻŧ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰ⧇), āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰ (āϕ⧋āĻĄā§‡ āϕ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϰ⧋āĻŸā§‡āϟ āĻ•āϰ⧇), āϏāĻžāĻĒā§‹āĻ°ā§āϟ (“āϕ⧇āύ āĻāϟāĻž āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϞ⧋?” āĻāϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ) āĻāĻŦāĻ‚ āĻ…āĻĄāĻŋāϟāϰ (āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ“ āĻŸā§āϰ⧇āϏāϝ⧋āĻ—ā§āϝāϤāĻž āϭ⧇āϰāĻŋāĻĢāĻžāχ āĻ•āϰ⧇)āĨ¤

āϕ⧀ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āύāϝāĻŧāĨ¤ āĻāϟāĻž āĻāĻ•āϟāĻŋ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻ•ā§āϰ⧇āĻĄā§‡āύāĻļāĻŋāϝāĻŧāĻžāϞ āϝāĻžāϰ āĻĒā§āϰāϏāĻ™ā§āĻ— āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āϕ⧀āϗ⧁āϞ⧋āϕ⧇ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄā§‡āϰ āĻŽāϤ⧋ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧇āύ, āϰ⧋āĻŸā§‡āĻļāύ, āχāύāϏāĻŋāĻĄā§‡āĻ¨ā§āϟ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻāĻŦāĻ‚ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚-āĻ āĻĒāϰ⧇ āϤāĻž āĻāĻžāĻŽā§‡āϞāĻž āĻĻ⧇āĻŦ⧇āĨ¤

āĻļ⧁āϰ⧁āϤ⧇āχ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŽā§‚āϞ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧁āύ:

  • āϕ⧀: āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻŽāĻžāύ āĻĒā§āϞāĻžāϏ āĻŽā§‡āϟāĻžāĻĄā§‡āϟāĻž (āϤ⧈āϰāĻŋāϰ āĻĒāϰ⧇ āĻ•āĻžāρāϚāĻž āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻŦ⧇āύ āύāĻž)āĨ¤
  • āĻ¸ā§āϕ⧋āĻĒ: āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻāĻ•āϟāĻŋ āύāĻžāĻŽāĻ•ā§ƒāϤ āϏ⧇āϟ (āωāĻĻāĻžāĻšāϰāĻŖ: read orders, write invoices āχāĻ¤ā§āϝāĻžāĻĻāĻŋ)āĨ¤
  • āĻŽāĻžāϞāĻŋāĻ•: āϕ⧀āϟāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāĨ¤
  • āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ: āϕ⧋āĻĨāĻžāϝāĻŧ āϕ⧀ āĻ•āĻžāϜ āĻ•āϰ⧇ (āĻĄā§‡āĻ­, āĻ¸ā§āĻŸā§‡āϜāĻŋāĻ‚, āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ)āĨ¤
  • āĻŽā§‡āϝāĻŧāĻžāĻĻ: āĻ•āĻ–āύ āĻāϟāĻŋ āĻ•āĻžāϜ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻŦ⧇, āĻŦāĻž āĻ•āĻ–āύ āϰ⧋āĻŸā§‡āϟ āĻ•āϰāĻž āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ•āĨ¤

āĻŦā§āϝāĻ°ā§āĻĨāϤāĻžāϰ āĻŽā§‹āĻĄāϗ⧁āϞ⧋ āĻĒā§‚āĻ°ā§āĻŦāĻžāύ⧁āĻŽā§‡āϝāĻŧ: āĻāĻ•āϟāĻŋ āϕ⧀ āϕ⧋āύāĻ“ āϰ⧇āĻĒā§‹ āĻŦāĻž āĻšā§āϝāĻžāĻŸā§‡ āϞāĻŋāĻ• āĻšāϝāĻŧ, āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋ āĻ•āĻžāϜ āĻ•āϰāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻŦ⧇āĻļāĻŋ āĻĒā§āϰāĻļāĻ¸ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻāĻŦāĻ‚ āϕ⧇āω āĻŦāϞāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž āϕ⧋āύ āϕ⧀ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻļ⧇āώāϟāĻžāϟāĻž āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϞ⧋āĻĄ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧ āĻāĻŦāĻ‚ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻ•āĻžāϜ āϧ⧀āϰ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻž āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāύ āφāĻĒāύāĻŋ v1-āĻ āϕ⧀ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āĻ…āύ⧇āĻ• āϟāĻŋāĻŽ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž org-āĻ¸ā§āϤāϰ⧇āϰ āϕ⧀āϗ⧁āϞ⧋, āĻ…āύāĻ¨ā§āϤ āĻŽā§‡āϝāĻŧāĻžāĻĻāĻŋ āϕ⧀āϗ⧁āϞ⧋ āĻāĻŦāĻ‚ āϏāĻŦ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ•āĻžāϜ āĻ•āϰāĻž āϕ⧀āϗ⧁āϞ⧋ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϚāϞ⧇āĨ¤ āĻĄāĻŋāϜāĻžāχāύ⧇ āĻāϏāĻŦ āĻ…āϏāĻŽā§āĻ­āĻŦ āĻ•āϰ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻĒā§āϰāĻžāϝāĻŧāχ āĻĒāϰ⧇ āĻĒ⧁āϞāĻŋāĻļāĻŋāĻ‚ āĻ•āϰāĻžāϰ āĻĨ⧇āϕ⧇ āϏāĻšāϜāĨ¤

āĻāĻŽāύ least-privilege āĻ¸ā§āϕ⧋āĻĒ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āϝāĻž āĻŽāĻžāύ⧁āώ āϏāĻ¤ā§āϝāĻŋāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇

Least-privilege āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻ–āύāχ āϝāĻ–āύ āĻŽāĻžāύ⧁āώ āĻ•āϝāĻŧ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡ āϏāĻ āĻŋāĻ• āĻ¸ā§āϕ⧋āĻĒ āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻŦ⧁āĻāϤ⧇ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻŦāĻŋāĻļ⧇āώāĻœā§āĻž āϞāĻžāĻ—āϛ⧇, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž “full access” āĻŦ⧇āϛ⧇ āύāĻŋāϝāĻŧ⧇ āϚāϞ⧇ āϝāĻžāĻŦ⧇āĨ¤

āĻļ⧁āϰ⧁āϰ āĻĻāĻŋāϕ⧇ āĻāĻŽāύ āĻ•āĻ°ā§āĻŽāĻ•āĻžāĻŖā§āĻĄā§‡āϰ āϤāĻžāϞāĻŋāĻ•āĻž āĻ•āϰ⧁āύ āϝ⧇āϗ⧁āϞ⧋ āĻāĻ•āϜāύ āĻŽāĻžāύ⧁āώ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻŦ⧇, āϕ⧇āĻŦāϞ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āύāϝāĻŧāĨ¤ “Read invoices” āĻ¸ā§āĻĒāĻˇā§āϟāĨ¤ “billing.read” āϝāĻĻāĻŋ UI-āϤ⧇āĻ“ āϏāĻšāϜ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦā§‹āĻāĻžāύ⧋ āĻĨāĻžāϕ⧇ āϤāĻŦ⧇āχ āĻ āĻŋāĻ• āφāϛ⧇āĨ¤ āϰ⧋āĻŸā§‡āĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ āĻāϟāĻž āφāϰ⧋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻžāϰāĻŖ āĻ—ā§āϰāĻžāĻšāĻ•āϰāĻž āϚāĻžāύ āύāĻŋāĻļā§āϚāĻŋāϤāϤāĻž āϝ⧇ āύāϤ⧁āύ āϕ⧀ āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀āϰ āϏāĻžāĻĨ⧇ āĻŽā§‡āϞ⧇āĨ¤

āφāĻĒāύāĻžāϰ āĻ¸ā§āϕ⧋āĻĒ āϏ⧇āϟ āϛ⧋āϟ, āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ•āĻžāĻœā§‡āϰ āϚāĻžāϰāĻĒāĻžāĻļ⧇ āĻ—ā§‹āĻˇā§āĻ āĻŋāĻŦāĻĻā§āϧ āϰāĻžāϖ⧁āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ:

  • āϰāĻŋāĻĒā§‹āĻ°ā§āϟāĻŋāĻ‚ (āχāύāĻ­āϝāĻŧ⧇āϏ, āĻ—ā§āϰāĻžāĻšāĻ•, āĻĒ⧇-āφāωāϟ āĻĻ⧇āĻ–āĻž)
  • āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰ āϏāĻžāĻĒā§‹āĻ°ā§āϟ (āĻ—ā§āϰāĻžāĻšāĻ• āĻĻ⧇āĻ–āĻž, āϰāĻŋāĻĢāĻžāĻ¨ā§āĻĄ āχāĻ¸ā§āϝ⧁ āĻ•āϰāĻž)
  • āĻ…āĻ°ā§āĻĄāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ (āĻ…āĻ°ā§āĻĄāĻžāϰ āϤ⧈āϰāĻŋ, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āφāĻĒāĻĄā§‡āϟ, āĻ•ā§āϝāĻžāĻ¨ā§āϏ⧇āϞ)
  • āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• (āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āϤ⧈āϰāĻŋ, āϏāĻŋāĻ•ā§āϰ⧇āϟ āϰ⧋āĻŸā§‡āϟ)
  • āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ (āχāωāϜāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜ, API āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜ)

ā§Ģā§ĻāϟāĻŋ āĻ•ā§āώ⧁āĻĻā§āϰ āϟāĻ—āϞ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϚāϞ⧁āύāĨ¤ āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĻā§€āĻ°ā§āϘ āĻšāϝāĻŧ, āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāϰ āĻŽāĻžāύ⧇ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋ āφāĻĒāύāĻžāϰ āϕ⧋āĻĄā§‡āϰ āĻĒā§āϰāϤāĻŋāĻĢāϞāύ āĻ•āϰāϛ⧇, āĻŽāĻžāύ⧁āώ⧇āϰ āĻ•āĻžāĻœā§‡āϰ āύāϝāĻŧāĨ¤

āύāĻŋāϰāĻžāĻĒāĻĻ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ “āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ āĻŦāĻžāĻŖā§āĻĄā§‡āĻ˛â€ āĻ…āĻĢāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻŖā§āĻĄā§‡āϞ āϕ⧀ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, “Accounting integration” āĻŦāĻžāĻŖā§āĻĄā§‡āϞāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸā§‡ āχāύāĻ­āϝāĻŧ⧇āϏ āĻāĻŦāĻ‚ āĻĒ⧇-āφāωāϟ āĻĻ⧇āĻ–āĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϰāĻŋāĻĢāĻžāĻ¨ā§āĻĄ āĻŦāĻ¨ā§āϧ āĻĨāĻžāĻ•āĻŦ⧇, āφāϰ āĻ…ā§āϝāĻžāĻĄāĻ­āĻžāĻ¨ā§āϏāĻĄ āχāωāϜāĻžāϰāϰāĻž āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤

āωāĻšā§āϚ-āϰāĻŋāĻ¸ā§āĻ• āĻ¸ā§āϕ⧋āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻŽāύ⧋āϝ⧋āĻ—āĻ¸ā§āĻŦāϰ⧂āĻĒ āĻ•āĻŋāϛ⧁ āĻŦāĻžāϧāĻž āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āĻāϟāĻž āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ, āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ-āĻ…āύāϞāĻŋ āĻ…āύ⧁āĻŽāϤāĻŋ, āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧ āωāĻ¤ā§āϤ⧋āϞāύ āĻŦāĻž āĻ…āĻĄāĻŋāϟ āϞāϗ⧇ āĻĻāϰāĻ•āĻžāϰāĻŋ āĻ•āĻžāϰāĻŖ āϏāĻ‚āϰāĻ•ā§āώāĻŖâ€”āĻāĻ­āĻžāĻŦ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ: āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰāϕ⧇ āχāύāĻ­āϝāĻŧ⧇āϏāϏāĻŽā§‚āĻš āϏāĻŋāĻ™ā§āĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϤāĻžāĻĻ⧇āϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ “read invoices” āĻāĻŦāĻ‚ “read customers” āϕ⧇āĻŦāϞ, “manage billing” āύāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻĒāϰ⧇ āϤāĻžāĻĻ⧇āϰ āϰāĻŋāĻĢāĻžāĻ¨ā§āĻĄ āĻĻāϰāĻ•āĻžāϰ āĻšāϝāĻŧ, āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋāĻŽāĻžāĻ¤ā§āϰ āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āĻ•āϰ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āχāĻ¸ā§āϝ⧁ āύāĻž āĻ•āϰ⧇āχ āĻ•āĻžāϜāϟāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇āύāĨ¤

āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ UX: āĻ¸ā§āĻ•ā§āϰāĻŋāύ āĻāĻŦāĻ‚ āĻ­āĻžāώāĻž āϝāĻž āϭ⧁āϞ āϕ⧋āύāϟāĻž āĻšāϤ⧇ āĻĻ⧇āϝāĻŧ āύāĻž

āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĒ⧇āϜāϟāĻž āĻāĻ•āϟāĻŋ āĻĻā§āϰ⧁āϤ āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧāĻž āωāϚāĻŋāϤ: "āĻāĻ–āύ āϕ⧋āύ āϕ⧀āϗ⧁āϞ⧋ āφāϛ⧇, āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋ āĻ•āĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ?" āĻāĻ•āϟāĻŋ āϏāĻšāϜ āĻŸā§‡āĻŦāĻŋāϞ āϏāĻžāϧāĻžāϰāĻŖāϤ āϏāĻŦāĻĨ⧇āϕ⧇ āĻ­āĻžāϞ āĻ•āĻžāϜ āĻ•āϰ⧇: āϕ⧀ āύāĻžāĻŽ, āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ, āĻ…āĻŦāĻ¸ā§āĻĨāĻž (active, expired, revoked), āĻļ⧇āώ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ¸ā§āϕ⧋āĻĒ āϏāĻžāϰāĻžāĻ‚āĻļāĨ¤ āĻ–āĻžāϞāĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻļāĻŋāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ, āĻ…āĻĒāϰāĻžāϧāĻŦā§‹āϧāϜāĻ• āύāϝāĻŧ: “āϕ⧋āύ āϕ⧀ āύ⧇āχāĨ¤ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…ā§āϝāĻžāĻĒ āĻŦāĻž āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇āĨ¤â€

āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ āĻ…āύ⧁āĻŽāϤāĻŋ āϏ⧇āϟ āĻ•āϰāĻž āĻŽāύ⧇ āĻšāĻ“āϝāĻŧāĻž, āύāĻž āϝ⧇ āĻāĻ•āϟāĻŋ āĻ°â€ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇āĨ¤ āĻĢā§āϞ⧋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϰāĻžāϖ⧁āύ, āϏāĻžāϧāĻžāϰāĻŖ āϞ⧇āĻŦ⧇āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϝ⧇āĻ–āĻžāύ⧇ āĻŽāĻžāύ⧁āώ āφāϟāϕ⧇ āϝāĻžāϝāĻŧ āϏ⧇āĻ–āĻžāύ⧇ āϛ⧋āϟ āĻšā§‡āĻ˛ā§āĻĒāĻžāϰ āĻŸā§‡āĻ•ā§āϏāϟ āϰāĻžāϖ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ create āĻĢāĻ°ā§āĻŽ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĻāϰāĻ•āĻžāϰ:

  • Name (āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ): “Payroll dashboard (prod)” āĻāϰ āĻšā§‡āϝāĻŧ⧇ “Key 1” āĻ–āĻžāϰāĻžāĻĒāĨ¤
  • Environment (āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ): āĻŸā§‡āĻ¸ā§āϟ āĻŦāύāĻžāĻŽ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ āĻ¸ā§āĻĒāĻˇā§āϟ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤
  • Scopes (āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ): āύāĻŋāϰāĻžāĻĒāĻĻ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āχāωāϜāĻžāϰāϰāĻž āφāϰ⧋ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • Expiry (āϐāĻšā§āĻ›āĻŋāĻ• āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ): “90 days” āϏāĻšāϜ āĻĒā§āϰāĻŋāϏ⧇āϟāĨ¤
  • Created by / owner (āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ): āĻĒāϰ⧇ āĻ•āĻžāϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻĻ⧇āĻ–āĻžāύāĨ¤

āϝāĻ–āύ āφāĻĒāύāĻŋ āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻŦ⧇āύ, āĻāĻ•āĻŦāĻžāϰāχ āĻĻ⧇āĻ–āĻžāύ āĻāĻŦāĻ‚ āϏāĻšāϜ āĻ­āĻžāώāĻžāϝāĻŧ āĻ•āĻžāϰāĻŖ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰ⧁āύ: “āφāĻĒāύāĻžāϰ āϏ⧁āϰāĻ•ā§āώāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž āϤ⧈āϰāĻŋāϰ āĻĒāϰ⧇ āĻ•āĻžāρāϚāĻž āϏāĻŋāĻ•ā§āϰ⧇āϟ āϰ⧇āϖ⧇ āĻĻāĻŋāχ āύāĻžāĨ¤ āĻāĻ–āύāχ āĻ•āĻĒāĻŋ āĻ•āϰ⧁āύ, āĻ•āĻžāϰāĻŖ āĻĒāϰ⧇ āφāĻĒāύāĻŋ āφāϰ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āύ āύāĻžāĨ¤â€ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĻāĻŋāύ (copy), āĻĒā§āϞāĻžāϏ āĻāĻ•āϟāĻŋ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ āϝ⧇āĻŽāύ “āφāĻŽāĻŋ āĻāχ āϏāĻŋāĻ•ā§āϰ⧇āϟāϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ¸ā§āĻĨāĻžāύ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĻ›āĻŋāĨ¤â€

āϰāĻŋāĻ­ā§‹āĻ• āĻāĻŦāĻ‚ āϰ⧋āĻŸā§‡āϟ āϏāĻšāĻœā§‡ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĻ⧁āĻ°ā§āϘāϟāύāĻžāĻŦāĻļāϤ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻ•āĻ āĻŋāύ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āϤāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ “Manage” āĻŽā§‡āύ⧁āϰ āĻĒ⧇āĻ›āύ⧇ āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ­āĻžāĻŦ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧇ āĻāĻŽāύ āĻ­āĻžāώāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ:

  • Revoke: “āϤāĻžā§ŽāĻ•ā§āώāĻŖāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ…ā§āϝāĻžāĻĒāϞ⧇ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāĻŦ⧇āĨ¤â€
  • Rotate: “āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϝāĻžāϤ⧇ āφāĻĒāύāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻāϰāĻĒāϰ āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀ āϰāĻŋāĻ­ā§‹āĻ• āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤â€

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϰ⧋āĻŸā§‡āĻļāύ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āύ, āĻāĻ•āϟāĻŋ āĻ—āĻžāχāĻĄā§‡āĻĄ āĻĄāĻžāϝāĻŧāĻžāϞāĻ— āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇: āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀ āϞ⧇āĻŦ⧇āϞ, āύāϤ⧁āύ āϕ⧀ āϞ⧇āĻŦ⧇āϞ āĻĻ⧇āĻ–āĻžāύ āĻāĻŦāĻ‚ āĻ•āϞāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āĻĒā§āϰāϤ_cutoff_ āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻžāϰ āĻ•āĻĨāĻž āĻŽāύ⧇ āĻ•āϰāĻŋāϝāĻŧ⧇ āĻĻāĻŋāύāĨ¤

āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ— āϝāĻž āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āĻĒā§āϰāĻžāϝāĻŧāχ āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰāĻž āĻĒā§āϰāĻļā§āύāϗ⧁āϞ⧋āϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ

āϏāĻšāĻžāϝāĻŧāϤāĻžāϰ āĻĒā§āϰāĻļā§āύāϗ⧁āϞ⧋āϰ āĻĻā§āϰ⧁āϤ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāύ
Key ID, action, status code āĻāĻŦāĻ‚ last used time āĻĻ⧇āĻ–āĻžāύ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ— āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āϏāĻšāĻžāϝāĻŧāϤāĻž āĻĻā§āϰ⧁āϤ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
āϞāĻ— āϝ⧋āĻ— āĻ•āϰ⧁āύ

āĻ•āĻŋāϛ⧁ āĻ­āĻžāĻ™āϞ⧇, āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻāĻ•āχ āϜāĻŋāύāĻŋāϏāϗ⧁āϞ⧋ āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰ⧇: āϕ⧋āύ āϕ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϕ⧀ āĻ•āϰāĻž āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻāĻŦāĻ‚ āĻ•āĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻ­āĻžāϞ⧋ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ—āϗ⧁āϞ⧋ āϏ⧇āχ āωāĻ¤ā§āϤāϰāϗ⧁āϞ⧋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϞ⧁āϕ⧋āϞ⧇ āύāĻž āϰ⧇āϖ⧇ āϏāĻšāĻœā§‡ āĻŦā§‹āĻāĻžāϝāĻŧāĨ¤

āĻāĻ•āϟāĻŋ āĻĻāϰāĻ•āĻžāϰ⧀ āϞāĻ— āĻāĻ¨ā§āĻŸā§āϰāĻŋ āϛ⧋āϟ āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ, āϏāĻ™ā§āĻ—āϤāĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻŋāĻ˛ā§āĻĄāϏ āĻĻāĻŋāϝāĻŧ⧇ āϝāĻž āĻŽāĻžāύ⧁āώ āĻĻā§āϰ⧁āϤ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ“ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

  • Timestamp (āϟāĻžāχāĻŽāĻœā§‹āύāϏāĻš)
  • Key ID (āĻ•āĻ–āύ⧋ āĻĒ⧁āϰ⧋ āϏāĻŋāĻ•ā§āϰ⧇āϟ āύāϝāĻŧ) āĻāĻŦāĻ‚ āϕ⧀ āĻŽāĻžāϞāĻŋāĻ•
  • Endpoint āĻŦāĻž āĻ…ā§āϝāĻžāĻ•āĻļāύ āύāĻžāĻŽ (āϝāϤāϟāĻž āϏāĻŽā§āĻ­āĻŦ āĻŽāĻžāύāĻŦ-āĻŦāĻžāĻ¨ā§āϧāĻŦ)
  • Source IP āĻāĻŦāĻ‚ user agent (āϝāĻĻāĻŋ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ)
  • āĻĢāϞāĻžāĻĢāϞ (success, blocked by scope, auth failed, rate limited, server error) āĻāĻŦāĻ‚ response code

āϞāĻ—āϕ⧇ āϕ⧀ āĻĄāĻŋāĻŸā§‡āχāϞāϏ āĻĒ⧇āĻœā§‡āϰ āϏāĻžāĻĨ⧇ āĻŦ⧇āρāϧ⧇ āĻĻāĻŋāύāĨ¤ āĻĻ⧁āϟāĻŋ āϛ⧋āϟ āĻŽā§‡āĻŸā§āϰāĻŋāĻ• āĻ…āύ⧇āĻ• āϟāĻŋāϕ⧇āϟ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰ⧇: First seen (āϕ⧀ āĻ•āĻ–āύ āĻĒā§āϰāĻĨāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāϝāĻŧ⧇āϛ⧇) āĻāĻŦāĻ‚ Last used (āϏāĻŦāĻļ⧇āώ āĻ…āύ⧁āϰ⧋āϧ)āĨ¤ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āϕ⧀ “āĻ•āĻ–āύ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ” āĻĻ⧇āĻ–āĻžāϝāĻŧ, āϤāĻž āĻĄāĻŋāϞāĻŋāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϚāĻŽā§ŽāĻ•āĻžāϰ āĻĒā§āϰāĻžāĻ°ā§āĻĨā§€āĨ¤ āϝāĻĻāĻŋ “last used” āĻĻ⧁āχ āĻŦāĻ›āϰ āφāϗ⧇ āĻĨāĻžāϕ⧇, āϏāĻŽā§āĻ­āĻŦāϤ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϰ⧋āĻŸā§‡āĻļāύ⧇āϰ āφāϗ⧇ āϏ⧇āϟāĻŋ āϟāĻŋāϕ⧇ āĻĨāĻžāĻ•āĻž āĻ āĻŋāĻ• āύāϝāĻŧāĨ¤

āĻĢāĻŋāĻ˛ā§āϟāĻžāϰāĻŋāĻ‚ v1-āĻ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻĨ⧇āϕ⧇ āĻŦ⧇āĻļāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰāϗ⧁āϞ⧋ āϏāϰāϞ āĻ“ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āϰāĻžāϖ⧁āύ: āϏāĻŽāϝāĻŧ āϏ⧀āĻŽāĻž, āĻ…āĻŦāĻ¸ā§āĻĨāĻž (success vs blocked vs failed), āĻ…ā§āϝāĻžāĻ•āĻļāύ/āĻ¸ā§āϕ⧋āĻĒ, āĻāĻŦāĻ‚ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟāĨ¤

āϰāĻŋāĻŸā§‡āύāĻļāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻĄāĻžāĻ•ā§āϟ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ, āϕ⧇āĻŦāϞ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āύāϝāĻŧāĨ¤ āĻ…āύ⧇āĻ• āϟāĻŋāĻŽ UI-āϤ⧇ 30 āĻĨ⧇āϕ⧇ 90 āĻĻāĻŋāύ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āϘ āχāϤāĻŋāĻšāĻžāϏ āϕ⧇āĻŦāϞ āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āϰāĻžāϖ⧇āĨ¤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻāϟāĻž āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āϧāϰ⧇ āύāĻž āύ⧇āϝāĻŧ āϝ⧇ āϞāĻ— “āĻ—āĻžāϝāĻŧ⧇āĻŦ” āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āĻ—ā§āϰāĻžāĻšāĻ• āĻ­āĻžāĻ™āĻžāĻŦāĻŋāĻšā§€āύ āύāĻŋāϰāĻžāĻĒāĻĻ āϰ⧋āĻŸā§‡āĻļāύ āĻŽāĻĄā§‡āϞ

āϞāĻ—āχāύ āĻ“ āϰ⧋āϞ āϝ⧋āĻ— āĻ•āϰ⧁āύ
āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āϝāĻĨāĻžāϝāĻĨ āϰ⧋āϞ⧇ āϰāĻžāĻ–āĻž āĻšāĻŦ⧇ āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ authentication āĻŽāĻĄāĻŋāωāϞ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤
āύāĻŋāϰāĻžāĻĒāĻĻ āĻ…āĻĨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰ⧁āύ

āϰ⧋āĻŸā§‡āĻļāύ āĻ•āĻžāϜ āĻ•āϰ⧇ āϝāĻ–āύ āĻāϟāĻŋ voorspelbaar (āĻĒā§‚āĻ°ā§āĻŦāĻžāύ⧁āĻŽā§‡āϝāĻŧ) āĻŽāύ⧇ āĻšāϝāĻŧāĨ¤ āĻāĻ•āϟāĻŋ āϏāϰāϞ āύ⧀āϤāĻŋ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧁āύ āϝāĻž āĻĻ⧁āχāϟāĻŋ āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ: āϕ⧀ āĻ•āϤ āϘāύ āϘāύ āϰ⧋āĻŸā§‡āϟ āĻ•āϰāĻž āωāϚāĻŋāϤ (āύāĻŋāϝāĻŧāĻŽāĻŋāϤ), āĻāĻŦāĻ‚ āϕ⧋āύ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞāĻŋ āϤāĻžāĻ¤ā§āĻ•ā§āώāĻŖāĻŋāĻ• āϰ⧋āĻŸā§‡āĻļāύ āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ• āĻ•āϰ⧇ (āϘāϟāύāĻžāĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ•)āĨ¤ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϰ⧋āĻŸā§‡āĻļāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻĒā§āϰāϤāĻŋ 90 āĻĻāĻŋāύāĨ¤ āχāϭ⧇āĻ¨ā§āϟ-āϚāĻžāϞāĻŋāϤ āϰ⧋āĻŸā§‡āĻļāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇: “āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀ āϕ⧋āĻŽā§āĻĒāĻžāύāĻŋ āϛ⧇āĻĄāĻŧ⧇āĻ›ā§‡â€, “āϕ⧀ āϟāĻŋāϕ⧇āĻŸā§‡ āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›ā§‡â€, āĻŦāĻž “āĻ…āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ¸ā§āĻĒāĻžāχāĻ•â€āĨ¤

āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ āĻŽāĻĄā§‡āϞ āĻšāĻšā§āϛ⧇ āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒāĨ¤ āĻ—ā§āϰāĻžāĻšāĻ•āĻĻ⧇āϰ āĻāĻ• āĻŽā§āĻšā§‚āĻ°ā§āϤ⧇ āϕ⧀ āĻŦāĻĻāϞāĻžāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āϤāĻžāĻĻ⧇āϰ āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĻāĻŋāύ āϝāĻ–āύ āĻĒ⧁āϰ⧋āύ⧋āϟāĻŋ āĻāĻ–āύāĻ“ āĻ•āĻžāϜ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āωāχāĻ¨ā§āĻĄā§‹ āĻĒāϰ⧇ āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀ āϰāĻŋāϟāĻžāϝāĻŧāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĢā§āϞ⧋:

  • āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ “Active” āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧁āύāĨ¤
  • āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀āϟāĻŋāĻ“ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϰāĻžāϖ⧁āύ, āϤāĻŦ⧇ āĻāϟāĻŋāϕ⧇ “Rotate soon” āϞ⧇āĻŦ⧇āϞ āĻĻāĻŋāύāĨ¤
  • āĻ—ā§āϰāĻžāĻšāĻ• āϤāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ•āϞāϗ⧁āϞ⧋ āϏāĻĢāϞāϤāĻž āϝāĻžāϚāĻžāχ āĻ•āϰ⧇āĨ¤
  • āĻ—ā§āϰāĻžāĻšāĻ• “Finish rotation” āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇, āĻ…āĻĨāĻŦāĻž āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀ āĻ…āĻŸā§‹āĻŽā§‡āϟāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŽā§‡āϝāĻŧāĻžāĻĻ āωāĻ¤ā§āϤ⧀āĻ°ā§āĻŖ āĻšāϝāĻŧāĨ¤
  • āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀ “Revoked” āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āύāĻžāĨ¤

āĻ—ā§āϰ⧇āϏ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄāϗ⧁āϞ⧋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ¸ā§āĻĒāĻˇā§āϟ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϤāĻžāϞāĻŋāĻ•āĻž āĻ­āĻŋāωāϤ⧇ āϕ⧀-āϰ āĻĒāĻžāĻļ⧇ āĻŽā§‡āϝāĻŧāĻžāĻĻ āĻļ⧇āώ⧇āϰ āϤāĻžāϰāĻŋāĻ– āĻĻ⧇āĻ–āĻžāύ āĻāĻŦāĻ‚ āϘāϟāĻžāϰ āφāϗ⧇ āϏāϤāĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āϤāĻž āĻĻ⧇āĻ–āĻžāύ (āωāĻĻāĻžāĻšāϰāĻŖ: 14 āĻĻāĻŋāύ, 3 āĻĻāĻŋāύ, 24 āϘāĻŖā§āϟāĻž)āĨ¤ āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ āĻļāĻŦā§āĻĻ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϚāϞ⧁āύ āϝ⧇āĻŽāύ “āĻļā§€āĻ˜ā§āϰāχ āĻŽā§‡āϝāĻŧāĻžāĻĻ āĻļ⧇āĻˇâ€āĨ¤ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ­āĻžāώāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ: “āĻāχ āϕ⧀ Jan 30-āĻ 10:00 UTC-āϤ⧇ āĻ•āĻžāϜ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻŦ⧇āĨ¤â€

āϰ⧇āϟ āϞāĻŋāĻŽāĻŋāϟ āĻāĻŦāĻ‚ āϞāĻ•āφāωāϟāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāϗ⧁āϞāĻŋāϕ⧇ āϰāĻ•ā§āώāĻž āĻ•āϰāĻŦ⧇ āϤāĻŦ⧇ āϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āĻļāĻžāĻ¸ā§āϤāĻŋ āύāĻž āĻĻ⧇āĻŦ⧇āĨ¤ āĻ…āύ⧇āĻ• āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϟāĻžāχāĻŽāφāωāϟ āĻĒāϰ⧇ retry āĻ•āϰ⧇, āϤāĻžāχ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϞāĻ•āφāωāϟ āϭ⧁āϝāĻŧāĻž āĻ…ā§āϝāĻžāϞāĻžāĻ°ā§āĻŽ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āύāĻŋāϝāĻŧāĻŽāϗ⧁āϞ⧋ āϏāĻšāĻœā§‡ āĻŦ⧁āĻāĻžāϰ āĻŽāϤ⧋ āϰāĻžāϖ⧁āύ:

  • āϕ⧀ āĻāĻŦāĻ‚ IP āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϰ⧇āϟ āϞāĻŋāĻŽāĻŋāϟ, āϕ⧇āĻŦāϞ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻ¸ā§āϤāϰ⧇ āύāϝāĻŧāĨ¤
  • 401 āĻāϰāϰāϕ⧇ āϟāĻžāχāĻŽāφāωāϟ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧁āύāĨ¤
  • āĻĒā§āϰāĻĨāĻŽā§‡ āĻ“āϝāĻŧāĻžāĻ°ā§āύ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āϏāĻžāĻŽāϝāĻŧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĨā§āϰāϟāϞ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āύāϤ⧁āύ āϕ⧀ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ•āϰ⧁āύāĨ¤
  • āϏāĻŦāϏāĻŽāϝāĻŧ UI-āϤ⧇ āĻ•āĻžāϰāĻŖ āĻĻ⧇āĻ–āĻžāύ: “Throttled due to 120 requests/mināĨ¤â€

āωāĻĻāĻžāĻšāϰāĻŖ: āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ āĻĻ⧁āχāϟāĻŋ āĻ…āĻžā§āϚāϞ⧇ āφāĻĒāύāĻžāϰ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āϰ⧋āĻŸā§‡āĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ, āĻĻ⧁āχāϟāĻŋ āϕ⧀āχ 7 āĻĻāĻŋāύ āĻ•āĻžāϜ āĻ•āϰ⧇, āϤāĻžāχ āϤāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§‡āĻ¨ā§āϟ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āϰ⧋āϞāφāωāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϰāĻžāϤ⧇āϰ āϕ⧋āύ⧋ āĻ•āĻžāϟāĻ“āĻ­āĻžāϰ āĻŦāĻž āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāϕ⧇āϟ āĻ›āĻžāĻĄāĻŧāĻžāχāĨ¤

āĻŽāύāĻŋāϟāϰāĻŋāĻ‚ āĻ“ āĻ…ā§āϝāĻžāϞāĻžāĻ°ā§āϟ: āϕ⧀ āĻĻ⧇āĻ–āĻžāĻŦ⧇āύ, āϕ⧀ āύ⧋āϟāĻŋāĻĢāĻžāχ āĻ•āϰāĻŦ⧇āύ

āĻ­āĻžāϞ āĻŽāύāĻŋāϟāϰāĻŋāĻ‚ āĻšāϞ “āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻĨāĻŋāϝāĻŧ⧇āϟāĻžāĻ°â€ āύāϝāĻŧ, āĻŦāϰāĻ‚ āĻĻā§āϰ⧁āϤ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧāĻž: āĻāχ āϕ⧀ āĻŽāĻžāϞāĻŋāϕ⧇āϰ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻž āĻŽā§‹āϤāĻžāĻŦ⧇āĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāĻšā§āϛ⧇ āĻ•āĻŋ āύāĻž?

āϕ⧀ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āϚāĻŋāĻĒ āĻĻ⧇āĻ–āĻžāύ āϝāĻžāϤ⧇ āĻŽāĻžāύ⧁āώ āĻĻā§āϰ⧁āϤ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ “Active” āĻāĻŦāĻ‚ “Revoked” āĻ¸ā§āĻĒāĻˇā§āĻŸâ€”āĻ•āĻŋāĻ¨ā§āϤ⧁ “Expiring soon” āφāϚāĻŽāĻ•āĻŋāύ āĻ…āĻĢāϞāĻžāχāύ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āϏāĻšāϜ “Last used” āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ (āĻāĻŦāĻ‚ “Never used”) āϝ⧋āĻ— āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āϟāĻŋāĻŽāϗ⧁āϞ⧋ āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀āϗ⧁āϞ⧋ confidently āĻŽā§āĻ›āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āφāĻĒāύāĻžāϰ āϞāĻ— āĻ­āĻŋāω āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύāϗ⧁āϞ⧋āϕ⧇ āĻšāĻžāχāϞāĻžāχāϟ āĻ•āϰāĻž āωāϚāĻŋāϤ, āϕ⧇āĻŦāϞ āϰ āĻ•āĻžāρāϚāĻž āĻ…āύ⧁āϰ⧋āϧ āύāϝāĻŧāĨ¤ āĻ•āĻŋāϛ⧁ āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞ āĻĒā§āϰāĻžāϝāĻŧāχ āϏāĻŽāĻ¸ā§āϝāĻž āϧāϰāϤ⧇ āĻĒāĻžāϰ⧇:

  • āĻ…āύāĻžāĻ•āĻžāĻ™ā§āĻ•ā§āώāĻŋāϤ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻŦāĻž āĻĢ⧇āχāϞāĻžāϰ⧇āϰ āĻ¸ā§āĻĒāĻžāχāĻ• (āĻŦāĻŋāĻļ⧇āώāϤ āĻ…āύ⧇āĻ• 401)
  • āύāϤ⧁āύ IP āϰ⧇āĻžā§āϜ āĻŦāĻž āύāϤ⧁āύ āĻĻ⧇āĻļ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻĻ⧇āĻ–āĻž (āϝāĻĻāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻž āϝāĻžāϝāĻŧ)
  • āϏāĻĒā§āϤāĻžāĻšā§‡āϰ āϜāĻ¨ā§āϝ āĻļāĻžāĻ¨ā§āϤ āĻĨāĻžāĻ•āĻž āϕ⧀ āĻšāĻ āĻžā§Ž āĻ•āϞ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰ⧇

āύ⧋āϟāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻ•āĻŽ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āϏāĻŦāĻ•āĻŋāϛ⧁āϤ⧇ āĻ…ā§āϝāĻžāϞāĻžāĻ°ā§āϟ āĻĻāĻŋāϞ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āĻŽāĻŋāωāϟ āĻ•āϰ⧇ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻžāχ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŽā§‡āϏ⧇āϜ āĻŽāĻŋāϏ āĻ•āϰāĻŦ⧇āĨ¤ v1-āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āϏ⧇āϟ:

  • āϕ⧀ āĻļā§€āĻ˜ā§āϰāχ āĻŽā§‡āϝāĻŧāĻžāĻĻ āĻļ⧇āώ (āωāĻĻāĻžāĻšāϰāĻŖ: 7 āĻĻāĻŋāύ āĻāĻŦāĻ‚ 1 āĻĻāĻŋāύ)
  • āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧāύāĻŋāĻˇā§āĻ  āύāĻŋāϰāĻŦāϤāĻžāϰ āĻĒāϰ āĻĒā§āϰāĻĨāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ
  • āĻ¸ā§āĻŦāĻ˛ā§āĻĒ āωāχāĻ¨ā§āĻĄā§‹āϤ⧇ āĻ…āύ⧇āĻ• 401

āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ, āϤ⧈āϰāĻŋ, āϰ⧋āĻŸā§‡āϟ āĻ…āĻĨāĻŦāĻž āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāϪ⧇āϰ āφāϗ⧇ āĻāĻ•āϟāĻŋ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āϗ⧇āϟ (āϝ⧇āĻŽāύ MFA āĻŦāĻž āĻ…ā§āϝāĻžāĻĒā§āϰ⧁āĻ­āĻžāϞ āĻ¸ā§āĻŸā§‡āĻĒ) āϝ⧋āĻ— āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ āϝ⧇āĻ–āĻžāύ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻĒā§āϰāĻ­āĻžāĻŦ āφāϛ⧇ āϏ⧇āĻ–āĻžāύ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, āϏāĻŦ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āύāϝāĻŧāĨ¤

āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻ“ āĻĄāĻžāϟāĻž āĻŽāĻĄā§‡āϞ: āĻ•āĻŋ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ (āφāϰ āĻ•āĻŋ āϰāĻžāĻ–āĻŦ⧇āύ āύāĻž)

āϰāĻŋāϰāĻžāχāϟ āĻ›āĻžāĻĄāĻŧāĻžāχ v1 āĻļāĻŋāĻĒ āĻ•āϰ⧁āύ
AppMaster-āĻ āĻĢā§‹āĻ•āĻžāϏāĻĄ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚-āĻ āĻāĻ•āϟāĻŋ āĻŦāĻŋāϕ⧇āϞ⧇ āĻāχ āĻĒā§‹āĻ¸ā§āϟāϕ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŽāύ v1 āĻĒā§‹āĻ°ā§āϟāĻžāϞ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻ•āϰ⧁āύāĨ¤
āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

āĻāĻ•āϟāĻž āĻ­āĻžāϞ⧋ UI-āĻ“ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϭ⧁āϞ āϰāĻžāĻ–āϞ⧇ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāĻŦ⧇āĨ¤ āϞāĻ•ā§āĻˇā§āϝ āϏāĻšāϜ: āϕ⧀āϗ⧁āϞ⧋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāĻ­āĻžāĻŦ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ•āϰāĻž, āĻ…āĻĄāĻŋāϟāϝ⧋āĻ—ā§āϝ āϰāĻžāĻ–āĻž āĻāĻŦāĻ‚ āĻ­ā§‚āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻ āĻŋāύ āĻ•āϰāĻžāĨ¤

āϛ⧋āϟ, āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻĄāĻžāϟāĻž āĻŽāĻĄā§‡āϞ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āϝāĻĨ⧇āĻˇā§āϟ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ “āϕ⧇ āĻ•āĻŋ āĻ•āϰ⧇āϛ⧇, āĻ•āĻ–āύ āĻāĻŦāĻ‚ āϕ⧇āĻ¨â€ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧāĻž āϝāĻžāϝāĻŧ, āϤāĻŦ⧇ āĻĄā§‡āϟāĻžāĻŦ⧇āϏāϕ⧇ āϜāĻžāĻ™ā§āĻ• āĻĻāϰāϜāĻžāϝāĻŧ āĻĒāϰāĻŋāĻŖāϤ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤

āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŽā§‚āϞ āĻŸā§‡āĻŦāĻŋāϞ

āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻšāϞ:

  • api_keys: id, owner_id, environment, status (active/revoked), created_at, last_used_at, expires_at (āϐāĻšā§āĻ›āĻŋāĻ•), key_prefix, secret_hash, rotated_from_key_id (āϐāĻšā§āĻ›āĻŋāĻ•)
  • scopes: id, name, description, risk_level (āϐāĻšā§āĻ›āĻŋāĻ•)
  • api_key_scopes: api_key_id, scope_id
  • audit_events: actor_id, action, target_type, target_id, metadata, created_at

āφāĻĒāύāĻžāϰ āĻ¸ā§āϕ⧋āĻĒ āĻŽāĻĄā§‡āϞ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āϰāĻžāϖ⧁āύāĨ¤ āĻĒāϰ⧇ āĻ¸ā§āϕ⧋āĻĒ āύāĻžāĻŽ āĻŦāĻĻāϞāĻžāύ⧋ āĻŦāĻž āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ⧇ āĻŦā§āϰ⧇āĻ• āĻāĻŦāĻ‚ āϞāĻ—āϕ⧇ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤ āĻ•āϰ⧇ āϤ⧁āϞāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻ•āĻžāρāϚāĻž āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻ•āĻ–āύ⧋ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻŦ⧇āύ āύāĻž

API āϕ⧀āϕ⧇ āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄā§‡āϰ āĻŽāϤ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āϤ⧈āϰāĻŋāϰ āĻĒāϰ⧇ āĻāϟāĻŋ āφāϰ āĻĻ⧇āĻ–āĻžāĻŦ⧇āύ āύāĻž, āĻāĻŦāĻ‚ āϕ⧇āĻŦāϞ āĻāĻ•-āĻĻāĻŋāĻ• āĻšā§āϝāĻžāĻļ (per-key salt āϏāĻš) āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ“ UX-āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ, āύāĻž-āĻ—ā§‹āĻĒāύ āφāχāĻĄā§‡āĻ¨ā§āϟāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ, āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋāĻĢāĻŋāĻ•ā§āϏ (āωāĻĻāĻžāĻšāϰāĻŖ: live_2F9Kâ€Ļ) āϝāĻžāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āϕ⧀āϗ⧁āϞ⧋ āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϰ⧋āĻŸā§‡āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ, āύāϤ⧁āύ āϕ⧀ āĻāĻŦāĻ‚ āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀āϰ āϏāĻŽā§āĻĒāĻ°ā§āĻ• (rotated_from_key_id) āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āĻāϤ⧇ āφāĻĒāύāĻŋ āĻĒ⧁āϰ⧋āύ⧋ āϏāĻŋāĻ•ā§āϰ⧇āϟ āύāĻž āϰ⧇āϖ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āχāϤāĻŋāĻšāĻžāϏ āĻĒāĻžāĻŦ⧇āύāĨ¤

āĻ…āĻĄāĻŋāϟ āĻŸā§āϰ⧇āχāϞ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ

āĻĒā§āϰāϤāĻŋ āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻāĻ•āϟāĻŋ āĻ…āĻĄāĻŋāϟ āχāϭ⧇āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ: created, scope changed, rotated, revoked, āĻāĻŦāĻ‚ “viewed logsāĨ¤â€ āφāϗ⧇ āĻĨ⧇āϕ⧇āχ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāύ āϕ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏ⧇āϟāφāĻĒ: āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύāϰāĻž āϏāĻŦ āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜ āĻ“ āϏāĻŦ āϞāĻ— āĻĻ⧇āĻ–āĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĒāĻžāϝāĻŧ, āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž āϤāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āύāĻŋāĻœā§‡āĻĻ⧇āϰ āϞāĻ— āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ/āϰāĻŋāĻĄ-āĻ“āύāϞāĻŋ āϰ⧋āϞāϗ⧁āϞ⧋ āϞāĻ— āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻĻ⧇āĻ–āĻž āĻŦāĻž āĻ¸ā§āϕ⧋āĻĒ āĻŦāĻĻāϞāĻžāύ⧋āϰ āĻ…āϧāĻŋāĻ•āĻžāϰ āĻĒāĻžāϝāĻŧ āύāĻžāĨ¤

āϏāĻžāϧāĻžāϰāĻŖ āϭ⧁āϞāϗ⧁āϞ⧋ āϝāĻž āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻā§āρāĻ•āĻŋ āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϞ⧋āĻĄ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧ

āϰ⧋āĻŸā§‡āĻļāύāϕ⧇ āϏāĻžāĻĒā§‹āĻ°ā§āϟ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āφāϤāĻ™ā§āϕ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻ•āϰāĻžāϰ āĻĻā§āϰ⧁āϤāϤāĻŽ āωāĻĒāĻžāϝāĻŧ āĻšāϞ āĻāĻŽāύ āĻāĻ•āϟāĻŋ UI āϚāĻžāϞ⧁ āĻ•āϰāĻž āϝāĻž āĻ…āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋āϕ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŦāĻžāύāĻžāϝāĻŧāĨ¤ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϏāĻŽāĻ¸ā§āϝāĻž āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻžāύ⧁āĻŽā§‡āϝāĻŧ āĻĢāĻžāρāĻĻ āĻĨ⧇āϕ⧇ āφāϏ⧇āĨ¤

āĻ…āĻ¤ā§āϝāϧāĻŋāĻ• āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϏ

āϝāĻĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āϕ⧀ "āϏāĻŦāĻ•āĻŋāϛ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇", āĻ…āϧāĻŋāĻ•āĻžāĻ‚āĻļ āĻŽāĻžāύ⧁āώ āĻ•āĻ–āύ⧋ āϤāĻž āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻ•āϰāĻŦ⧇ āύāĻžāĨ¤ āϤāĻžāϰāĻž āĻĒā§āϰāĻĨāĻŽ āϝ⧇ āϕ⧀ āĻĻ⧇āĻ–āĻŦ⧇ āϏ⧇āϟāĻžāχ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ⧇ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āϭ⧁āϞ⧇ āϝāĻžāĻŦ⧇āĨ¤

āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻšāϞ āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ¸ā§āϕ⧋āĻĒ āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āϏāĻŽāϝāĻŧ āĻ¸ā§āĻĒāĻˇā§āϟ āĻŦāĻžāĻ°ā§āϤāĻž āĻĻ⧇āĻ–āĻžāύ⧋, āϝ⧇āĻŽāύ “missing scope: invoices.readāĨ¤â€ āϝāĻĻāĻŋ “full access” āĻ…āĻĒāĻļāύ āĻĻāϰāĻ•āĻžāϰ āĻšāϝāĻŧ, āϏ⧇āϟāĻŋāϕ⧇ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻĒāĻ›āĻ¨ā§āĻĻ āĻšāĻŋāϏ⧇āĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϏāϤāĻ°ā§āĻ•āϤāĻž āĻĻ⧇āĻ–āĻžāύāĨ¤

āϰāĻšāĻ¸ā§āϝāĻŽāϝāĻŧ āϕ⧀ āĻāĻŦāĻ‚ āϰāĻšāĻ¸ā§āϝāĻŽāϝāĻŧ āφāωāĻŸā§‡āϜ

āϕ⧀āϗ⧁āϞ⧋āϰ āĻŽāĻžāϞāĻŋāĻ• āĻāĻŦāĻ‚ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻĻāϰāĻ•āĻžāϰāĨ¤ āĻāχ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āϟāĻŋāϕ⧇āϟ āφāϏ⧇: "āϕ⧋āύ āϕ⧀ āĻ­āĻžāĻ™āϛ⧇?" āĻŦāĻž "āĻāϟāĻŋ āφāĻŽāϰāĻž āĻŽā§āĻ›āϤ⧇ āĻĒāĻžāϰāĻŋ?" āĻ•āϝāĻŧ⧇āĻ• āϏāĻĒā§āϤāĻžāĻš āĻĒāϰ⧇āĨ¤

āϤ⧈āϰāĻŋāϰ āϏāĻŽāϝāĻŧ āĻĻ⧁āχāϟāĻŋ āϛ⧋āϟ āχāύāĻĒ⧁āϟ āϚāĻžāχ⧁āύ:

  • āĻŽāĻžāϞāĻŋāĻ• (āĻŦ āĻŦā§āϝāĻ•ā§āϤāĻŋ āĻŦāĻž āϟāĻŋāĻŽ)
  • āωāĻĻā§āĻĻ⧇āĻļā§āϝ (āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϞ⧇āĻŦ⧇āϞ āϝ⧇āĻŽāύ “Zapier integration” āĻŦāĻž “Partner ABC sandbox”)

āϰ⧋āĻŸā§‡āĻļāύ āφāϰ⧇āĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āφāωāĻŸā§‡āϜ āĻŸā§āϰāĻŋāĻ—āĻžāϰāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻšāĻžāĻ°ā§āĻĄ āĻ•āĻžāϟāĻ“āĻ­āĻžāϰ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰ⧇āύ (āĻĒ⧁āϰ⧋āύ⧋ āϕ⧀ āĻšāĻ āĻžā§Ž āĻ…āĻ•āĻžāĻ°ā§āϝāĻ•āϰ), āĻ—ā§āϰāĻžāĻšāĻ•āϰāĻž āĻĄāĻžāωāύāϟāĻžāχāĻŽ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āĨ¤ āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āĻ•āϰ⧁āύ: āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ, āĻĒ⧁āϰ⧋āύ⧋āϟāĻŋ āĻ¸ā§āĻŦāĻ˛ā§āĻĒ āωāχāĻ¨ā§āĻĄā§‹ āĻĨāĻžāϕ⧁āĻ•, āϤāĻžāϰāĻĒāϰ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧁āύāĨ¤

āϞāĻ— āϝ⧇āϗ⧁āϞ⧋ āĻŽā§ŒāϞāĻŋāĻ• āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ āύāĻž

āϞāĻ—āϗ⧁āϞ⧋ āĻĒā§āϰāĻžāϝāĻŧāχ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ āĻ•āĻžāϰāĻŖ āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āĻĻāϰāĻ•āĻžāϰāĻŋ āϜāĻŋāύāĻŋāϏ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ: āϕ⧋āύ āϕ⧀āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻĻāϰāĻ•āĻžāϰ⧀ āĻāĻ¨ā§āĻŸā§āϰāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āωāϚāĻŋāϤ āϕ⧀ āφāχāĻĄāĻŋ (āϏāĻŋāĻ•ā§āϰ⧇āϟ āύāϝāĻŧ), āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ, āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ/āĻ…ā§āϝāĻžāĻ•āĻļāύ, āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞ (success/failed āϏāĻš status code)āĨ¤ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āϕ⧋āĻĄ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āφāĻĒāύāĻŋ "āĻ–āĻžāϰāĻžāĻĒ āϕ⧀" āĻĨ⧇āϕ⧇ "āĻ¸ā§āϕ⧋āĻĒ āύ⧇āχ" āĻŦāĻž "āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ¤ā§āϰ⧁āϟāĻŋ" āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻžāĨ¤

“āϏāĻšāĻžāϝāĻŧāĻ•â€ UX āĻĻāĻŋāϝāĻŧ⧇ āϏāĻŋāĻ•ā§āϰ⧇āϟ āϞāĻŋāĻ•

āϤ⧈āϰāĻŋāϰ āĻĒāϰ⧇ āĻ•āĻ–āύ⧋ āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĻ⧇āĻ–āĻžāĻŦ⧇āύ āύāĻž āĻāĻŦāĻ‚ āχāĻŽā§‡āϞ⧇ āĻĒāĻžāĻ āĻžāĻŦ⧇āύ āύāĻžāĨ¤ āĻ¸ā§āĻ•ā§āϰāĻŋāύāĻļāϟ, āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻŦāĻž “āϟāĻŋāĻŽāĻŽā§‡āϟ-āϕ⧇ āĻļ⧇āϝāĻŧāĻžāĻ°â€ āĻĢā§āϞ⧋-āϝāĻŧ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ āϕ⧇āω āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āĻĢ⧇āϞāϞ⧇ āϏāĻŽāĻžāϧāĻžāύ āϏāĻšāϜ: āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϰ⧋āĻŸā§‡āϟ āĻ•āϰ⧁āύāĨ¤

āĻļāĻŋāĻĒ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻĻā§āϰ⧁āϤ āĻšā§‡āĻ•āϞāĻŋāĻ¸ā§āϟ

āφāĻĒāύāĻžāϰ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰ⧇āĻŦāϞ āύāĻŋāĻœā§‡ āϰāĻžāϖ⧁āύ
āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§‚āĻ°ā§āĻŖ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āϚāĻžāύ, āϤāĻ–āύ āϏ⧇āĻ˛ā§āĻĢ-āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύāĨ¤
āϏ⧋āĻ°ā§āϏ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύ

āĻļāĻŋāĻĒ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻĻā§āϰ⧁āϤ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻāĻŦāĻ‚ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻĒāĻžāϏ āĻ•āϰ⧁āύāĨ¤ āĻāĻ•āϟāĻŋ āĻ­āĻžāϞ āϕ⧀ āĻ¸ā§āĻ•ā§āϰāĻŋāύ āϕ⧀āϗ⧁āϞ⧋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ“ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋ āϏāĻšāϜ āĻ•āϰāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤

  • āĻĒā§āϰāϤāĻŋ āϕ⧀-āϰ āĻ¸ā§āĻĒāĻˇā§āϟ āĻŽāĻžāϞāĻŋāĻ•āĻžāύāĻž āĻ“ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āφāϛ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āωāĻ¤ā§āϤāϰ āύāĻž āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ “āĻāχ āϕ⧀ āĻ•āĻžāϰ āĻāĻŦāĻ‚ āϕ⧇āύ āφāϛ⧇?”, āĻĒāϰ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻŦ⧇āĨ¤
  • āφāĻĒāύāĻŋ āĻāĻ• āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ “āĻļ⧇āώ⧇ āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĻ›āĻŋāϞ?” āĻĒā§āϰāϤāĻŋ āϕ⧀āϰ āϜāĻ¨ā§āϝ last used time, environment āĻāĻŦāĻ‚ āĻ•āϞāĻŋāĻ‚ āĻ…ā§āϝāĻžāĻĒ/āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĻ⧇āĻ–āĻžāύ (āϏāĻŽā§āĻ­āĻŦ āĻšāϞ⧇)āĨ¤
  • āϰ⧋āĻŸā§‡āĻļāύ āĻŦā§āϝāĻ¸ā§āϤ āĻĻāĻŋāύ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ⧇ āĻĻ⧁āχāϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϕ⧀ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϏāϰāϞ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āĻĻ⧇āĻ–āĻžāύ: āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āφāĻĒāĻĄā§‡āϟ, āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āύāĻŋāĻļā§āϚāĻŋāϤ, āϤāĻžāϰāĻĒāϰ āĻĒ⧁āϰ⧋āύ⧋āϟāĻž āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧁āύāĨ¤
  • āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻāĻŦāĻ‚ āϰāĻ•ā§āώāĻŋāϤāĨ¤ āωāĻšā§āϚ āĻĒā§āϰāĻ­āĻžāĻŦ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋ āϏāĻžāϧāĻžāϰāĻŖ āĻ­āĻžāώāĻžāϝāĻŧ āϞ⧇āĻŦ⧇āϞ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϕ⧇āω āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāϞ⧇ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϧāĻžāĻĒ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤
  • āϰāĻŋāĻ­ā§‹āĻ• āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĒāϰāĻŋāĻŽāĻžāĻĒāϝ⧋āĻ—ā§āϝāĨ¤ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ• āĻšāĻ“āϝāĻŧāĻž āϕ⧀ āĻ•āϝāĻŧ⧇āĻ• āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āϰāĻŋāĻ­ā§‹āĻ• āĻ•āϰāĻž āωāϚāĻŋāϤ, āĻāĻŦāĻ‚ āϞāĻ—āϗ⧁āϞ⧋ āĻ•āĻŋ āϘāĻŸā§‡āϛ⧇ āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻžāĻŦ⧇āĨ¤

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϟāĻŋ āύ⧋-āϕ⧋āĻĄ āϟ⧁āϞ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āύ, āĻāχ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϕ⧇ UI āϰāĻŋāϕ⧋āϝāĻŧāĻžāϰāĻŽā§‡āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧁āύ, "āĻĒāϰ⧇ āĻ•āϰāĻž āωāĻ¨ā§āύāϤāĻŋ" āĻšāĻŋāϏāĻžāĻŦ⧇ āύāϝāĻŧāĨ¤ āϤāĻžāϰāĻž āĻ āĻŋāĻ• āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧ āϕ⧀ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āχāύāϏāĻŋāĻĄā§‡āĻ¨ā§āϟ āĻ•āĻŽāĻžāĻŦ⧇ āύāĻž āĻŦāĻž āϏ⧃āĻˇā§āϟāĻŋ āĻ•āϰāĻŦ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ: āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰāϕ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĻ⧇āĻ“āϝāĻŧāĻž āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āύāĻž āĻĻāĻŋāϝāĻŧ⧇

āĻĻā§āϰ⧁āϤ āĻĄāĻžāϟāĻž āĻŽāĻĄā§‡āϞ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰ⧁āύ
AppMaster Data Designer-āĻ PostgreSQL-āĻ api_keys, scopes āĻāĻŦāĻ‚ audit events āĻŽāĻĄā§‡āϞ āĻ•āϰ⧁āύāĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ: āϞāϜāĻŋāĻ¸ā§āϟāĻŋāĻ•ā§āϏ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰāϕ⧇ āĻ…āĻ°ā§āĻĄāĻžāϰ āĻĄā§‡āϟāĻž āĻŸā§‡āύ⧇ āφāύāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āϤāĻžāϰāĻž āĻļāĻŋāĻĒāĻŽā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϤāĻžāĻĻ⧇āϰ āĻ…āĻ°ā§āĻĄāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ, āϰāĻŋāĻĢāĻžāĻ¨ā§āĻĄ āϜāĻžāϰāĻŋ āĻ•āϰāĻž āĻŦāĻž āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰ āύ⧋āϟ āĻĻ⧇āĻ–āĻž āĻĻāϰāĻ•āĻžāϰ āύāĻžāχāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āϤāĻžāĻĻ⧇āϰāϕ⧇ āĻĒ⧁āϰ⧋-āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āϕ⧀ āĻĻ⧇āύ, āĻŦāĻŋāĻ¸ā§āĻĢā§‹āϰāϪ⧇āϰ āĻŦā§āϝāĻĒā§āϤāĻŋ āĻŦ⧇āĻĄāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āϏāϰāϞ, āύāĻŋāϰāĻžāĻĒāĻĻ āĻĢā§āϞ⧋ āφāϛ⧇ āϝāĻž āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĻā§āϰ⧁āϤāĻ“ āϞāĻžāϗ⧇āĨ¤ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰ āĻĒā§‹āĻ°ā§āϟāĻžāϞ⧇ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻŽāĻžāϞāĻŋāĻ• āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϝāĻžāϰ āύāĻžāĻŽ “Logistics Partner - Orders ReadāĨ¤â€ āϤāĻžāϰāĻž orders:read āĻāϰ āĻŽāϤ⧋ āĻāĻ•āϟāĻŋ āϰāĻŋāĻĄ-āĻ…āύāϞāĻŋ āĻ¸ā§āϕ⧋āĻĒ āĻŦ⧇āϛ⧇ āύ⧇āϝāĻŧ (āφāϰ āĻ•āĻŋāϛ⧁ āύāϝāĻŧ), āĻŽā§‡āϝāĻŧāĻžāĻĻ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇ (āωāĻĻāĻžāĻšāϰāĻŖ: 90 āĻĻāĻŋāύ), āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻšāϝāĻŧ āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāϚāĻŋāϤ IP āϰ⧇āĻžā§āĻœā§‡ āϞāĻ• āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻ•āĻĒāĻŋ āĻ¸ā§āĻŸā§‡āĻĒ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧇ āĻĻāĻŋāύ: āĻŸā§‹āϕ⧇āύāϟāĻŋ āĻāĻ•āĻŦāĻžāϰāχ āĻĻ⧇āĻ–āĻžāύ, āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āϞ⧇āĻ–āĻžāϝāĻŧ: “āĻāĻ–āύāχ āĻ•āĻĒāĻŋ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻŋ āφāϰ āĻ•āĻ–āύ⧋ āĻāχ āϕ⧀ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻžāĨ¤â€ āĻāχ āĻāĻ• āĻŦāĻžāĻ•ā§āϝ āĻ…āύ⧇āĻ• āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāϕ⧇āϟ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰ⧇āĨ¤

āĻ•āϝāĻŧ⧇āĻ• āĻĻāĻŋāύ āĻĒāϰ⧇, āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ “API āĻĄāĻžāωāύāĨ¤â€ āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ— āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āĻ•āϝāĻŧ⧇āĻ• āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡ āĻĒā§āϰāĻ•ā§ƒāϤ āĻĒā§āϰāĻļā§āύāϟāĻŋāϰ āωāĻ¤ā§āϤāϰ:

  • āϕ⧋āύ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻāĻŦāĻ‚ āϕ⧋āύ āϕ⧀-use āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇
  • āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āϕ⧋āĻĄ āĻāĻŦāĻ‚ āĻĢ⧇āϰāϤāĻŦāĻžāĻ°ā§āϤāĻž āϕ⧀ āĻ›āĻŋāϞ
  • IP āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ user agent (āϝāĻĻāĻŋ āĻĒā§āϰāϝ⧋āĻœā§āϝ)
  • āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻĢāϞ⧋-āφāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āĻ“ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ ID

āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϞāĻ—āϗ⧁āϞ⧋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āϟāĻŋ āϏāĻšāϜ āĻŦāĻŋāώāϝāĻŧ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇: āϤāĻžāϰāĻž \/orders/update āĻ•āϞ āĻ•āϰāϛ⧇ āĻāĻ•āϟāĻŋ āϰāĻŋāĻĄ-āĻ…āύāϞāĻŋ āϕ⧀āϰ āϏāĻžāĻĨ⧇, āĻ…āĻĨāĻŦāĻž āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟāϗ⧁āϞ⧋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ IP āĻĨ⧇āϕ⧇ āφāϏāϛ⧇ āϝāĻž allowlist āĻ•āϰāĻž āύ⧇āχāĨ¤ āĻāĻ–āύ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻāĻ• āĻ¸ā§āĻĒāĻˇā§āϟ āϏāĻŽāĻžāϧāĻžāύ āϜāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āύ⧁āĻŽāĻžāύ āύāĻž āĻ•āϰ⧇āĨ¤

āϰ⧋āĻŸā§‡āĻļāύāχ āϝ⧇āĻ–āĻžāύ⧇ āĻ­āĻžāϞ⧋ UX āύāĻŋāĻœā§‡āϕ⧇ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ⧇āϰ āĻāĻ•āϜāύ āĻ•āĻ¨ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āϛ⧇āĻĄāĻŧ⧇ āϝāĻžāϝāĻŧ, āφāĻĒāύāĻŋ āĻāĻ•āχ orders:read āĻ¸ā§āϕ⧋āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āύ, āĻĻ⧁āχ āĻ•āĻŋāχ āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āĻ¸ā§āĻŦāĻ˛ā§āĻĒ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ, āϤāĻžāϰāĻĒāϰ āύāϤ⧁āύ āϕ⧀āϤ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāĻ“āϝāĻŧāĻžāϰ āĻĒāϰ⧇ āĻĒ⧁āϰ⧋āύ⧋āϟāĻŋ āϰāĻŋāĻ­ā§‹āĻ• āĻ•āϰāĻŦ⧇āύāĨ¤

āϏāĻžāĻĢāĻ˛ā§āϝ āĻĻ⧇āĻ–āϤ⧇ āĻāĻŽāύ: āĻĒāĻžāĻ°ā§āϟāύāĻžāϰāϰāĻž āφāĻĒāύāĻžāϰ āϟāĻŋāĻŽā§‡āϰ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āύāĻž āĻ•āϰ⧇ āĻ…āύāĻŦā§‹āĻ°ā§āĻĄ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸā§‡ āϏ⧀āĻŽāĻŋāϤ āĻĨāĻžāϕ⧇, āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ āĻ­āĻžāĻ™āϞ⧇ āφāĻĒāύāĻŋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻŋ āϘāĻŸā§‡āϛ⧇ āϤāĻž āϭ⧇āĻŦ⧇ āĻĻā§āϰ⧁āϤ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϧāĻžāĻĒ: v1 āĻļāĻŋāĻĒ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϞ⧇āĻ–āĻžāϰ āφāϗ⧇ āωāĻ¨ā§āύāϤāĻŋ āĻ•āϰ⧁āύ

āϛ⧋āϟ āĻ•āϰ⧇ āĻļāĻŋāĻĒ āĻ•āϰ⧁āύāĨ¤ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ v1 āĻāĻ•āϟāĻŋ āϜāϟāĻŋāϞ āĻĒā§‹āĻ°ā§āϟāĻžāϞ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ­āĻžāϞ āϝāĻž āĻŽāĻžāϏāĻ–āĻžāύāĻŋāĻ• āϏāĻŽāϝāĻŧ āύ⧇āϝāĻŧ āĻāĻŦāĻ‚ āĻŽāĻžāύ⧁āώāϕ⧇ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤ āĻ•āϰ⧇āĨ¤ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻĒā§āϰ⧋āĻĄāĻžāĻ•ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ¸ā§āϕ⧋āĻĒ āϤāĻžāϞāĻŋāĻ•āĻž, āĻŽā§ŒāϞāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ— āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āϰ⧋āĻŸā§‡āĻļāύ āĻĢā§āϞ⧋ āĻĻāĻŋāϝāĻŧ⧇ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ•āĻ­āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āϤāĻŋāύāϟāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚ āĻŦā§āϞāϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ: āϕ⧀, āĻ¸ā§āϕ⧋āĻĒ āĻāĻŦāĻ‚ āϞāĻ—āĨ¤ āĻĒā§āϰāĻĨāĻŽā§‡ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋ coarse āϰāĻžāϖ⧁āύ (read, write, admin) āĻāĻŦāĻ‚ āϛ⧋āϟ āϛ⧋āϟ āĻ…āύ⧁āĻŽāϤāĻŋāϗ⧁āϞ⧋ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āφāϗ⧇āχ āĻĒā§āϰāĻŽāĻžāĻŖ āϚāĻžāύ āϝ⧇ āϤāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āϰ⧋āĻŸā§‡āĻļāύāϕ⧇ āĻŦāĻŋāϰāĻ•ā§āϤāĻŋāĻ•āϰ āĻ•āϰ⧇ āϤ⧁āϞ⧁āύ: āĻāĻ•āϟāĻŋ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ, āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻĒ⧁āϰ⧋āύ⧋āϟāĻŋ āϰāĻŋāĻ­ā§‹āĻ• āĻ•āϰ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ v1 āĻšā§‡āĻ•āϞāĻŋāĻ¸ā§āϟ:

  • 6 āĻĨ⧇āϕ⧇ 12 āϟāĻŋ āĻ¸ā§āϕ⧋āĻĒ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ, āĻĒā§āϰāϤāĻŋāϟāĻŋāϰ āĻ•āĻŋ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ āϤāĻžāϰ āĻ¸ā§āĻĒāĻˇā§āϟ āωāĻĻāĻžāĻšāϰāĻŖāϏāĻš
  • āĻĒā§āϰāϤāĻŋ āϕ⧀-āϰ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ (prod āĻŦāύāĻžāĻŽ sandbox) āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϏāĻšāϜ āĻŽāĻžāϞāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āĻĄ
  • āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻ— āϏāĻŽāϝāĻŧ, āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ/āĻ…ā§āϝāĻžāĻ•āĻļāύ, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āϕ⧋āĻĄ āĻāĻŦāĻ‚ āϕ⧀ āϞ⧇āĻŦ⧇āϞāϏāĻš
  • āĻāĻ•āϟāĻŋ āϰ⧋āĻŸā§‡āϟ āĻĢā§āϞ⧋ āϝāĻž āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ (āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€āĻ­āĻžāĻŦ⧇ āĻĻ⧁āχāϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϕ⧀)
  • āĻĻ⧁āĻ°ā§āϘāϟāύāĻžāĻŦāĻļāϤ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻž āĻ•āĻ āĻŋāύ āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āĻāĻ•āϟāĻŋ revoke āĻ…ā§āϝāĻžāĻ•āĻļāύ

v1 āϞāĻžāχāĻ­ āĻšāϞ⧇, āϝ⧇āĻ–āĻžāύ⧇ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāϕ⧇āϟ āĻ•āĻŽā§‡ āϏ⧇āĻ–āĻžāύ⧇ polish āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āϞāĻ— āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ (āϤāĻžāϰāĻŋāĻ– āĻĒāϰāĻŋāϏāϰ, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ, āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ/āĻ…ā§āϝāĻžāĻ•āĻļāύ) āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĒā§āϰāĻĨāĻŽ āϏāĻžāĻĢāĻ˛ā§āϝāĨ¤ āĻ…ā§āϝāĻžāϞāĻžāĻ°ā§āϟāϏ āĻĒāϰ⧇: āĻ¸ā§āĻĒāĻžāχāĻ•, āĻŦāĻžāϰāĻŦāĻžāϰ auth failure, āĻŦāĻž āĻĻā§€āĻ°ā§āϘ āύāĻŋāϰāĻŦāϤāĻžāϰ āĻĒāϰ⧇ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύ⧋āϟāĻŋāĻĢāĻžāχ āĻ•āϰ⧁āύāĨ¤ āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻ¸ā§āϕ⧋āĻĒāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āĻ¸ā§āĻŸā§‡āĻĒ āϝ⧋āĻ— āĻ•āϰ⧁āύ, āϏāĻŦ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ “admin-only” āύāĻž āĻĻāĻŋāϝāĻŧ⧇āĨ¤

āĻĒā§āϰ⧋āĻĄāĻžāĻ•ā§āϟāϟāĻŋāϰ āϭ⧇āϤāϰ⧇āχ UX āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧁āύ, āϏāϰāĻžāϏāϰāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĒāĻžāĻļ⧇āĨ¤ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻšā§‡āĻ˛ā§āĻĒāĻžāϰ āĻŸā§‡āĻ•ā§āϏāϟ āĻĻā§€āĻ°ā§āϘ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧ, āωāĻĻāĻžāĻšāϰāĻŖ: “āĻŦā§āϝāĻŦāϏāĻžāϰ āϘāĻ¨ā§āϟāĻžāϝāĻŧ āϕ⧀ āϰ⧋āĻŸā§‡āϟ āĻ•āϰ⧁āύāĨ¤ āύāĻŋāĻļā§āϚāĻŋāϤ āύāĻž āĻšāĻ“āϝāĻŧāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĻ⧁āχāϟāĻŋ āϕ⧀ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϰāĻžāϖ⧁āύāĨ¤â€

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĻā§āϰ⧁āϤ āĻāĻ•āϟāĻŋ self-serve āĻĒā§‹āĻ°ā§āϟāĻžāϞ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāύ, āĻāĻ•āϟāĻŋ āύ⧋-āϕ⧋āĻĄ āĻĒāĻĻā§āϧāϤāĻŋ āĻāϟāĻŋ āĻ­āĻžāϞāĻ­āĻžāĻŦ⧇ āĻŽāĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇: āĻāĻ•āϟāĻŋ Keys āĻŸā§‡āĻŦāĻŋāϞ, Scopes āĻŸā§‡āĻŦāĻŋāϞ, Key-Scope join, Logs āĻŸā§‡āĻŦāĻŋāϞ, āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻ“ āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϰ⧋āϞāĨ¤ AppMaster (appmaster.io)-āĻ, āφāĻĒāύāĻŋ PostgreSQL Data Designer-āĻ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, Business Process Editor-āĻ āϰ⧋āĻŸā§‡āĻļāύ āĻ“ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻĒā§āϝāĻžāύ⧇āϞ āĻĒā§āϞāĻžāϏ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰ āĻĒā§‹āĻ°ā§āϟāĻžāϞ UI āύāĻŽāύ⧀āϝāĻŧ āĻĄā§‡āĻĒā§āϞāϝāĻŧāĻŽā§‡āĻ¨ā§āϟ āĻ…āĻĒāĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻļāĻŋāĻĒ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ•ā§āϞāĻžāωāĻĄ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻŦāĻž āϏ⧋āĻ°ā§āϏ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟāϏāĻšāĨ¤

āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϏāĻšāϜ
āĻ•āĻŋāϛ⧁ āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ•āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇āϰ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āϏāĻš āĻ…ā§āϝāĻžāĻĒāĻŽāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤
āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻšāĻŦ⧇āύ āϤāĻ–āύ āφāĻĒāύāĻŋ āϏāĻ āĻŋāĻ• āϏāĻĻāĻ¸ā§āϝāϤāĻž āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ⧎

āĻāĻŦāĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝāĻžāĻ•
API āϕ⧀ āϰ⧋āĻŸā§‡āĻļāύ UX: āĻ¸ā§āϕ⧋āĻĒ, āϏ⧇āĻ˛ā§āĻĢ-āϏāĻžāĻ°ā§āĻ­ āϕ⧀ āĻāĻŦāĻ‚ āϞāĻ— | AppMaster