📊 Sheets Backup Admin
Простое Chrome-расширение для автоматического резервного копирования Google Таблиц.
✨ Возможности
- 🔐 Авторизация через Google OAuth - безопасно и просто
- 🔍 Автоматическое сканирование всех ваших Google Таблиц
- 📋 Выборочное резервное копирование - выбирайте нужные файлы
- 📅 Daily бэкапы - хранятся 60 дней, затем автоудаляются
- 📆 Monthly бэкапы - хранятся бессрочно
- 💾 Только значения - копируются значения ячеек и форматирование (БЕЗ формул и скриптов)
- 🎨 Сохранение форматирования - цвета, шрифты, размеры ячеек
- 📁 Автоматическая организация - папки создаются и управляются автоматически
🏗️ Архитектура
Пользователь устанавливает расширение из Chrome Web Store
↓
Войти через Google
↓
Расширение подключается к единому Google Apps Script (ваш)
↓
Apps Script работает с Drive каждого пользователя отдельно
Ключевая особенность: Пользователю НЕ нужно ничего настраивать, кроме авторизации!
🚀 Для пользователей
Установка
- Установите расширение из Chrome Web Store
- Кликните на иконку расширения
- Войдите через Google - разрешите доступ к Drive и Sheets
- Готово! Начинайте работать
Использование
1. Сканирование таблиц
- Нажмите “Найти все таблицы”
- Кликните на таблицу, чтобы добавить в реестр
2. Настройка бэкапов
- В реестре поставьте галочки:
- ☑️ Daily - ежедневный бэкап (60 дней)
- ☑️ Monthly - ежемесячный бэкап (бессрочно)
3. Запуск бэкапов
- Нажмите “📅 Daily Backup” или “📆 Monthly Backup”
- Проверьте результат в вашем Google Drive → папка “Sheets Backups”
4. Проверка бэкапа
- Откройте созданный бэкап
- ✅ Значения скопированы
- ✅ Форматирование сохранено
- ❌ Формулы удалены (только значения!)
🛠️ Для разработчиков (развертывание)
Требования
- Google Cloud аккаунт (для OAuth)
- Google Apps Script (бесплатно)
- Chrome Web Store Developer аккаунт ($5 регистрация)
Быстрый старт
Подробная инструкция: DEPLOYMENT.md
Краткий план:
- Настройте Google Cloud OAuth (Client ID)
- Разверните Apps Script как Web App
- Создайте мастер-таблицу реестра
- Обновите
config.js с вашими URL и Client ID
- Тестируйте с несколькими аккаунтами
- Опубликуйте в Chrome Web Store
Структура проекта
BackUp4GoogleSheets/
├── extension/ # Chrome Extension
│ ├── config.js # Настройки (URL, OAuth)
│ ├── manifest.json # Манифест расширения
│ ├── background.js # Service Worker
│ ├── sidebar.html # Интерфейс
│ ├── sidebar.js # Логика с OAuth
│ ├── sidebar.css # Стили
│ └── assets/ # Иконки
├── gas/ # Google Apps Script
│ ├── Code.gs # API endpoints
│ ├── scan.gs # Сканирование Drive
│ ├── backup.gs # Создание бэкапов
│ ├── retention.gs # Очистка старых (60 дней)
│ └── createTestSheets.gs # Генератор тестовых таблиц
├── README.md # Этот файл
├── DEPLOYMENT.md # Полная инструкция по развертыванию
└── QUICKSTART.md # Быстрый старт
Ключевые файлы для настройки
1. extension/config.js
const CONFIG = {
GAS_URL: 'https://script.google.com/macros/s/.../exec', // Ваш Apps Script URL
GOOGLE_CLIENT_ID: '123.apps.googleusercontent.com', // OAuth Client ID
...
};
2. extension/manifest.json
{
"oauth2": {
"client_id": "123.apps.googleusercontent.com",
"scopes": [...]
}
}
3. gas/Code.gs
const MASTER_REGISTRY_SHEET_ID = 'YOUR_SHEET_ID'; // ID таблицы-реестра
Multi-user архитектура
Единая таблица-реестр для всех пользователей:
| User Email |
Название файла |
ID файла |
Daily |
Monthly |
… |
| user1@ |
Таблица 1 |
abc123 |
TRUE |
FALSE |
… |
| user2@ |
Таблица 2 |
def456 |
FALSE |
TRUE |
… |
Apps Script фильтрует по Session.getActiveUser().getEmail() - каждый видит только свои данные.
Безопасность
- ✅ OAuth 2.0 авторизация
- ✅ Данные хранятся только в Drive пользователя
- ✅ Apps Script выполняется от имени пользователя
- ✅ Изоляция данных по email
- ✅ Нет передачи данных третьим лицам
📊 Квоты и ограничения
Google Apps Script (бесплатно):
- 20,000 URL вызовов/день
- 90 минут выполнения/день
- 6 минут на запрос
Если пользователей много (>1000):
Миграция на:
- Firebase Functions
- Google Cloud Functions
- Платные квоты Apps Script
🧪 Тестирование
Автоматическое создание тестовых таблиц
Используйте gas/createTestSheets.gs:
- Создайте новый проект в Apps Script
- Скопируйте код из
createTestSheets.gs
- Запустите функцию
createTestSheets()
- Получите 3 тестовые таблицы с данными, формулами и форматированием
Подробнее: TESTING_AUTO.md
📝 Документация
❓ FAQ
Нужно ли пользователю создавать Apps Script?
Нет! Вы (разработчик) создаете один Apps Script, все пользователи используют его.
Видят ли пользователи друг друга?
Нет! Каждый видит только свои таблицы и бэкапы. Изоляция по email.
Где хранятся бэкапы?
В Google Drive каждого пользователя, в папке “Sheets Backups”.
Можно ли продавать в Chrome Web Store?
Да! Архитектура готова для коммерческого использования.
Как бэкапы отличаются от оригинала?
- ✅ Значения ячеек копируются
- ✅ Форматирование сохраняется
- ❌ Формулы НЕ копируются (только вычисленные значения)
- ❌ Скрипты НЕ копируются
🤝 Поддержка
При возникновении проблем:
- Для пользователей: Свяжитесь с разработчиком через Chrome Web Store
- Для разработчиков:
- Проверьте логи: Apps Script → View → Executions
- Проверьте консоль Chrome (F12)
- Проверьте квоты: Google Cloud Console
📄 Лицензия
Проект создан для коммерческого использования.
Вы можете:
- ✅ Продавать в Chrome Web Store
- ✅ Модифицировать под свои нужды
- ✅ Использовать архитектуру для других проектов
🎯 Roadmap
Версия: 2.0.0
Готово к публикации в Chrome Web Store ✅
Начните с DEPLOYMENT.md для развертывания! 🚀