sheets-backup-privacy

📊 Sheets Backup Admin

Простое Chrome-расширение для автоматического резервного копирования Google Таблиц.

✨ Возможности

🏗️ Архитектура

Пользователь устанавливает расширение из Chrome Web Store
              ↓
        Войти через Google
              ↓
Расширение подключается к единому Google Apps Script (ваш)
              ↓
Apps Script работает с Drive каждого пользователя отдельно

Ключевая особенность: Пользователю НЕ нужно ничего настраивать, кроме авторизации!

🚀 Для пользователей

Установка

  1. Установите расширение из Chrome Web Store
  2. Кликните на иконку расширения
  3. Войдите через Google - разрешите доступ к Drive и Sheets
  4. Готово! Начинайте работать

Использование

1. Сканирование таблиц

2. Настройка бэкапов

3. Запуск бэкапов

4. Проверка бэкапа


🛠️ Для разработчиков (развертывание)

Требования

Быстрый старт

Подробная инструкция: DEPLOYMENT.md

Краткий план:

  1. Настройте Google Cloud OAuth (Client ID)
  2. Разверните Apps Script как Web App
  3. Создайте мастер-таблицу реестра
  4. Обновите config.js с вашими URL и Client ID
  5. Тестируйте с несколькими аккаунтами
  6. Опубликуйте в 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() - каждый видит только свои данные.

Безопасность


📊 Квоты и ограничения

Google Apps Script (бесплатно):

Если пользователей много (>1000):

Миграция на:


🧪 Тестирование

Автоматическое создание тестовых таблиц

Используйте gas/createTestSheets.gs:

  1. Создайте новый проект в Apps Script
  2. Скопируйте код из createTestSheets.gs
  3. Запустите функцию createTestSheets()
  4. Получите 3 тестовые таблицы с данными, формулами и форматированием

Подробнее: TESTING_AUTO.md


📝 Документация


❓ FAQ

Нужно ли пользователю создавать Apps Script?

Нет! Вы (разработчик) создаете один Apps Script, все пользователи используют его.

Видят ли пользователи друг друга?

Нет! Каждый видит только свои таблицы и бэкапы. Изоляция по email.

Где хранятся бэкапы?

В Google Drive каждого пользователя, в папке “Sheets Backups”.

Можно ли продавать в Chrome Web Store?

Да! Архитектура готова для коммерческого использования.

Как бэкапы отличаются от оригинала?


🤝 Поддержка

При возникновении проблем:

  1. Для пользователей: Свяжитесь с разработчиком через Chrome Web Store
  2. Для разработчиков:
    • Проверьте логи: Apps Script → View → Executions
    • Проверьте консоль Chrome (F12)
    • Проверьте квоты: Google Cloud Console

📄 Лицензия

Проект создан для коммерческого использования.

Вы можете:


🎯 Roadmap


Версия: 2.0.0
Готово к публикации в Chrome Web Store

Начните с DEPLOYMENT.md для развертывания! 🚀