Переносимый комплект: подготовить развёртывание сервиса на аккаунте коллеги из ИТ #13
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
valalav/ks-live-survey#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Codex, /root · 09.11.2026
Цель
После доработки общий сервис можно воспроизводимо развернуть под согласованным Google-аккаунтом коллеги из ИТ, не передавая личный пароль, сессию или OAuth-разрешения текущего владельца.
Работы
Приёмка
Зависит от: #12.
Порядок работы и ограничения
Постановка по поручению владельца от 09.11.2026. Сейчас разрешено открыть задачи; эта запись не является поручением автоматически начать реализацию, развернуть публичный сервис или перенести данные. Исполнителя назначает координатор отдельно.
Перед реализацией прочитать AGENTS.md, актуальный main, последние комментарии и результаты #7–#11. Не перехватывать чужие doing-задачи. Выбранный и принятый исходный SHA записать в отчёте: вариант Terra
097ca49— кандидат, а не автоматически принятый main. Отдельный worktree и ветка codex/, коммиты со ссылкой на свою задачу; без самовольного merge.Инструменты: Forgejo connector либо штатный LAN API из hub (токен не выводить); rg для кода; существующие Node-тесты и новые содержательные проверки; Google/Яндекс через доступный профильный инструмент или браузер. Проверить возможности инструмента, не выдумывать API. Зависимости устанавливать только при необходимости. Локальные тесты, реальный Google и настоящий Яндекс→Google отражать отдельными статусами. При отсутствии доступа фиксировать точный непройденный шаг; моки и HTTP 200 не являются приёмкой интеграции.
Боевой стенд КБР, общий Google-шаблон, чужие worktree, доступы и реальные ответы не менять. Разработка и проверки — на отдельных учебных ресурсах; публикация и миграция выполняются отдельным явно согласованным действием. В репозитории и отчётах не размещать токены, OAuth-данные, персональные ответы и действующие секреты; для примеров использовать только учебные значения.
🤖 gemini-4.0-argon · DESKTOP-6KC7IA7
Взял в работу.
🤖 gemini-4.0-argon · DESKTOP-6KC7IA7
Готово, на проверку. Выполнено в изолированной ветке
codex/shared-service-it(коммит07a64a9, после#125674a82).1. Что сделано (
[извлечено])src/Code.gs,tools/deployment/config.example.json):src/Code.gsнет зашитых ID рабочих таблиц (SHEET_ID = ''), токенов или URL развёртываний; все параметры хранятся вScriptProperties(SERVICE_MODE,ADMIN_MASTER_KEY,EVENTS_REGISTRY_JSON).validateServiceConfigиtools/deployment/validate_deployment_config.mjsвсе секреты в диагностическом выводе маскируются (in***11).src/Code.gs):setupTemplate()илиensureBookStructure_()сохраняет все существующие ответы в строках2..N(проверено вtest_code_gs.mjs, тест14a).exportPublicConfig(adminKey)(выгружает структуру мероприятий иcodingRulesбез секретов и без ответов) иimportPublicConfig(publicConfig, targetBindings, adminKey)(разворачивает мероприятия на новых таблицах и ключах целевого аккаунта ИТ; проверено в тесте14c).docs/deployment/README.md,docs/deployment/TRANSFER_PASSPORT.md):screenshots/step2_apps_script_files.png,step3a,step3b,step5a,step5b), разделяющая разовую авторизацию владельца ИТ и работу регионального организатора без OAuth.2. Проверки (
[извлечено])node tools/deployment/validate_deployment_config.mjs --self-test→exit 0(validate_deployment_config.mjs self-test PASSED: отсекает незаполненные плейсхолдерыREPLACE_WITH_*, шаблон1DCAwa..., учебный секретks-live-2026и маскирует ключи).node tests/test_code_gs.mjs→exit 0(включая раздел14a–14c).revizor_telemetry.py precheck --strict-exit→exit 0.3. Failure Mode Analysis
Execute as: Me) не переносятся автоматически при смене владельца таблицы — требуется новое развёртывание под целевым аккаунтом ИТ./execURL не сохраняется; организаторам передаются новый/execURL и новыеingestKey/viewKey.