Кейси · Перевірка застосунку
Портал для клієнтів, зібраний ШІ на Firebase: перевірений і виправлений
Зразок замовлення: портал і студії вигадані, дані тестові. Його зібрано в Claude Code для цього кейсу; кожна знахідка й виправлення — справжній прогін. Виправлений портал працює в мережі, його можна відкрити самому.
Відкрийте портал самі
Відкрити живий портал →Виправлений портал працює на Firebase, сторінки на Cloudflare. Реєстрацію закрито, листи не надсилаються, тож увійдіть одним із чотирьох демо-входів; кожен веде туди, де працює ця людина. Завантажити можна картинки й PDF до 2 МБ. Щоночі все повертається до початкового стану, а з цими входами всі бачать, що додали інші, тож вводьте вигаданий вміст.
Демо-входи
- Власник студії:
camille@atelierbrume.example/demo-owner - Фрилансер на одному проєкті:
oskar@bergmotion.example/demo-freelancer - Головний контакт клієнта:
jonas@velolumen.example/demo-client - Засновник (адмінка всіх студій):
founder@folioport.example/demo-founder
Що перевірено вже на живому порталі
- Живі сторінки збігаються з перевіреною збіркою файл у файл і містять лише публічні налаштування: жодних приватних ключів і карт вихідного коду.
- Без входу база, сховище файлів і серверні функції відхиляють будь-яке читання й запис, а відповідь про відсутній запис не відрізняється від відповіді про чужий.
- Посилання дає лише свої файли; вимкнені, прострочені посилання й посилання призупиненої студії не відкриваються; файли віддаються так, що не виконуються як сторінки.
- Усі чотири ролі перевірено вручну: вхід, завантаження від студії, фрилансера й клієнта, адмінка засновника.
Знайдено лише на справжньому Firebase і виправлено: кожне завантаження отримувало відмову, бо правила сховища читали більше записів, ніж дозволяє Firebase; завантажений файл ніколи б не з'явився, бо сервер чекав другої події про завантаження, яку надсилає лише локальна копія; адмінка засновника падала без індексу бази; файл, надісланий клієнтом, ховався за фільтром, і здавалося, що завантаження не вдалося. Кілька низьких лишаються у списку для власника, як-от серверні функції приймають запити з будь-якого сайту (вхід людини їм однаково потрібен).
Мета
Застосунок на Firebase тримає, хто що читає й змінює, у правилах доступу, а в порталі багато людей: власник і команда студії, фрилансери на одному проєкті, головний контакт клієнта та його колеги, гості з посиланням, засновник, який веде всі студії. Питання: у порталі, який ШІ здав як готовий, чи бачить і змінює кожен лише те, що йому належить?
Складність
На звичайному шляху портал працював: проєкти, етапи, затвердження, файли й посилання поводилися як слід, а без входу відвідувач не отримував нічого. У нотатках самого ШІ було обіцяно, що етап затверджує лише головний контакт клієнта і що кожен файл перевіряється щоразу, коли його відкривають. Помилки проявлялися лише тоді, коли одна людина робила те, що належить іншій: колега клієнта, фрилансер, хтось, хто щойно пішов, призупинена студія.
Рішення
Спершу правила власника записали: для кожної людини в порталі — що вона може бачити й змінювати в кожній його частині; неясні випадки вирішував власник. Потім кожне правило перевірили від імені цієї людини на локальній копії з тестовими даними, напряму через базу, сховище файлів і серверні функції, а не лише через сторінки. Виправлення поверталися ШІ звичайними словами, у три раунди, і кожен раунд перевіряли знову: що виправлено і що зламалося. Потім портал переїхав на справжній проєкт Firebase і там його перевірили теж.
Результат
29 проблем у порталі, як його здано: 5 високих, 12 середніх, 12 низьких. Люди клієнта могли читати нотатки, які студія вела про них; будь-хто з боку студії міг записати затвердження від імені клієнта й переписати минулі рішення; адреса файлу відкривалася й після того, як людина втратила доступ або студію призупинили; завантажений файл HTML чи SVG відкривався як сторінка на адресі самого порталу. Після трьох раундів 26 виправлено, 3 — частково; високих не лишилося. Самі виправлення внесли 2 високі й 6 середніх, наприклад імена кирилицею чи з надрядковими знаками, як Émile, більше не проходили реєстрацію; обидві високі й половину середніх виправлено. Власнику лишено: 3 середні, для яких треба навмисні дивні кроки, як-от схожа літера з іншого алфавіту в імені, і кілька низьких. Ще 12 місць, де власник згодом вирішив інакше, ніж розумно зробив ШІ, теж змінено, і помилками ШІ вони не рахуються. Один портал, зібраний один раз: цифри описують цей портал, а не частку для таких застосунків.
Послуга
Така сама перевірка для вашого застосунку
Ви надсилаєте код, а не паролі. Кожна проблема — з прикладом, хто що міг зробити, а кожне виправлення перевіряється знову на те, що воно зламало.


