Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Clonio CLI
Новини 01 липня 2026

Clonio CLI: Клонування Продакшн-Бази з Анонімізацією Даних

Clonio CLI копіює продакшн-базу даних у розробницьке, CI та тестове середовища, переписуючи чутливі колонки під час передачі - генерує фейкові імена та email-адреси, маскує токени та перепризначає первинні ключі, щоб дані залишалися придатними для використання, але більше не ідентифікували реальних людей.

Ключові можливості

  • Анонімізація окремих колонок за допомогою стратегій fake, mask, hash, static, null та template
  • Ремапінг ключів, який перепризначає первинні ключі та оновлює зовнішні ключі, що на них посилаються
  • Виявлення PII за допомогою матчерів, які позначають чутливі колонки без трансформації
  • Підписані артефакти аудиту, що зберігаються локально, в S3, Slack, Teams або надсилаються електронною поштою
  • Декілька варіантів розповсюдження - окремий бінарник, PHAR, Docker-образ або Composer dev-залежність

Конфігурація зберігається у файлі .cloning.yaml під контролем версій, який посилається на назви з'єднань, а не на облікові дані, тому його безпечно комітити разом із кодом додатку.

Стратегії трансформації колонок

Кожна колонка, яку потрібно змінити, отримує стратегію у YAML-файлі. Колонки, які ви не вказуєте, копіюються без змін, тому описувати потрібно лише ті дані, які потребують перетворення. Доступні стратегії:

  • fake - генерація синтетичних значень за допомогою FakerPHP
  • mask - збереження кількох перших символів із маскуванням решти
  • hash - односторонній хеш значення (псевдонімізація, а не справжня анонімізація)
  • static - заміна на фіксований рядок
  • null - встановлення значення NULL
  • template - поєднання літерального тексту з плейсхолдерами faker
  • remapping - призначення нових первинних ключів та оновлення зовнішніх ключів, що на них посилаються

Приклад скороченої конфігурації для таблиці users:

version: "1"
connection: production
options:
  faker_locale: de_DE
tables:
  users:
    rows:
      strategy: last
      limit: 5000
      sort_by: created_at
    columns:
      email:
        strategy: fake
        faker_method: safeEmail
      first_name:
        strategy: fake
        faker_method: firstName
      phone:
        strategy: mask
      internal_notes:
        strategy: "null"

Clonio чітко зазначає, що вихідні дані стратегії hash усе ще вважаються персональними даними згідно з GDPR, і рекомендує використовувати fake або null, коли повторна ідентифікація має бути неможливою.

Ремапінг ключів між пов'язаними таблицями

Копіювання рядків у цільову базу даних може призвести до конфліктів із існуючими первинними ключами. Стратегія remapping замінює первинні ключі таблиці новими значеннями та послідовно оновлює зовнішні ключі в залежних таблицях, щоб референційна цілісність зберігалася при передачі, а не порушувалася під час імпорту.

Виявлення персональних даних

Замість того, щоб покладатися на вас у пошуку кожної чутливої колонки вручну, Clonio постачається з матчерами, які позначають колонки, що ймовірно містять PII. Команда matchers:init налаштовує базові шаблони, matchers:list показує діючі правила, а matchers:check валідує ваші таблиці відповідно до них - це спосіб виявити нову колонку email або tax_id, яку хтось додав без стратегії трансформації.

Аудиторський слід

Кожен запуск клонування може створювати підписаний артефакт аудиту плюс структуровані логи, що записуються локально, у S3-сумісне сховище або надсилаються до Slack, Microsoft Teams чи електронною поштою. Команда cloning:verify-audit перевіряє цілісність цих логів постфактум, що важливо, коли потрібно продемонструвати, що продакшн-дані були анонімізовані перед потраплянням у менш довірене середовище.

Встановлення та використання

Clonio працює як окремий бінарник (Linux x86_64/aarch64 та macOS Apple Silicon, PHP не потрібен), PHAR-архів для PHP 8.5+, Docker-образ (ghcr.io/clonio-dev/clonio:latest) або Composer dev-залежність:

composer require --dev clonio-dev/clonio-cli

Базовий робочий процес полягає в ініціалізації проєкту, реєстрації продакшн-з'єднання, генерації конфігурації клонування з його схеми та запуску проти цільового середовища:

clonio init
clonio connection:add production --production
clonio cloning:dump --connection production
clonio cloning:run production.cloning.yaml --target ci

Вихідний код, документацію та релізи можна знайти на GitHub.

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Backpack CRUD RCE

Повідомлення про безпеку: неавтентифіковане ін'єктування команд у Backpack\CRUD

Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

PostgreSQL 19 продовжує важливу тенденцію останніх років: класична реляційна база даних поступово перетворюється на універсальну платформу для роботи з різними типами даних - від JSON до графів і аналітики

Вакансії за темою

Full-time Вчора

Team Lead Backend Department (PHP, Laravel)

NuxGame Віддалено За результатами співбесіди

NuxGame is a dynamic IT company delivering top-tier software solutions for the iGaming industry. We empower operators of all sizes to expand into new markets, strengthen their existing brands, and achieve ambitious business goals. We are looking for a Team Lead (Backend Department) to join our team. If you are passionate about high-load systems, solving complex engineering challenges, and working with modern tech stacks, this is the place for you. What will be your responsibilities: Manage and mentor a team of PHP developers, fostering a collaborative and productive work environment; Lead the development of new features through cross-team collaboration, applying best development practices and ensuring high code quality; Establish and maintain processes for profiling and monitoring enterprise applications to ensure optimal performance; Participate in the migration of monolithic applications to a microservices architecture, ensuring scalability across different regions; Collaborate closely with other teams to ensure seamless integration of PHP applications with other systems and technologies. What we expect from you: At least 4 years of PHP development experience with a deep understanding of the Laravel framework; Proven leadership experience with the ability to manage and develop a team of engineers; Strong experience with cloud environments, preferably AWS; Solid knowledge of microservices architecture, Docker, Kubernetes, Jenkins, SQL tuning and optimization; Good understanding of HTTP, REST, WebSocket, API integrations, as well as experience with PostgreSQL, analytical databases, and BI tools; Basic knowledge of Linux and Nginx. What we offer: We believe that a happy team builds the best products. Here is how we support you: Remote & Flexible: Work from anywhere. Our core hours are 09:00/10:00 to 17:00/18:00 (Kyiv time), Monday to Friday. Financial Stability: Timely compensation payments. Personal Equipment Policy: We provide equipment to ensure comfortable and efficient work. Knowledge Sharing: We regularly gather to discuss new trends, share insights, and grow together. Community: At NuxGame, you will work in a team of like-minded professionals ready to support, inspire, and tackle complex challenges together. Creative Freedom: We encourage initiative. With us, you have the freedom of professional expression and space to implement your ideas. Time-off Policy: Up to 29 days off per year, including up to 5 days for health-related absence (without medical confirmation). Atmosphere: A friendly environment focused on results and mutual respect, free from unnecessary bureaucracy and pressure. We believe in unlocking the inner potential of each team member within an open and democratic culture. We look forward to welcoming you to our team!

Full-time Вчора

Backend Developer (PHP, Laravel), розробник систем цифрової логістики

Хартія, 13-та БрОП НГУ Віддалено ₴25,000 - ₴75,000

SENIOR FULL-STACK РОЗРОБНИК СИСТЕМ ЦИФРОВОЇ ЛОГІСТИКИ Ми шукаємо Backend Developer Для нас важливіше не те, чи ти працював саме з «ідеальним» набором технологій, а те, чи вмієш ти мислити як інженер, розбиратися в задачах, брати відповідальність за результат і рости разом. Стек можна опанувати,ми допоможемо з онбордингом, контекстом і підтримкою команди. Обов’язки розробляти та покращувати backend-частину продукту створювати інтеграції між сервісами працювати з даними, бізнес-логікою та внутрішніми процесами брати участь в обговоренні рішень разом із командою продукту, дизайну та інженерії покращувати стабільність, продуктивність і надійність сервісів занурюватися в домен і впливати на те, як продукт розвивається далі Вимоги маєш від 2 років комерційного досвіду в backend-розробці добре розумієш принципи веброзробки, роботу з базами даних, Git вмієш писати чистий, зрозумілий код і не боїшся рефакторингу можеш самостійно розібратися в задачі, поставити уточнювальні запитання й довести її до результату Буде плюсом досвід із сучасним backend-стеком (наприклад: Node.js / TypeScript, PHP / Laravel, Python, Go, Java тощо) досвід роботи з SQL/NoSQL, Docker, CI/CD, тестуванням розуміння, як будуються масштабовані та надійні системи Надсилайте свої резюме або телефонуйте на офіційний номер 3333 для призначення співбесіди.

Full-time 1 дн. тому

Senior Backend Developer (Laravel / PHP)

alpview it service Віддалено За результатами співбесіди

Backend Developer (Laravel / PHP) Remote / Europe Long-term engagement Project Overview We are building a greenfield platform with real business context. An existing and successful system is currently in production - we use it as a reference for business processes and domain knowledge while designing a new system with modern architecture and clear technical direction. This is not a legacy rewrite or maintenance project. We are building a new system from the ground up, focused on architecture, scalability, and long-term evolution. We follow a pragmatic engineering approach: we avoid unnecessary abstraction and focus on solutions that deliver real business value. We optimize for long-term maintainability rather than unnecessary complexity. What You'll Do Design and implement self-contained backend modules within a modular monolith Work with clearly defined domain boundaries using DDD principles Implement REST APIs and service interactions Translate business processes into scalable system design Apply Hexagonal Architecture patterns in practice Structure domain logic, workflows, and database schemas Contribute to architectural decisions and improvements Write multi-layer tests (unit, feature, integration) Ensure clean, maintainable, and scalable code Deliver production-ready systems You will work closely with the Tech Lead and collaborate with a cross-functional team including Product Owner, UX, and Architects. This is not a task-based coding role - we expect engineering thinking, ownership, and collaboration. Requirements 5+ years of professional PHP and Laravel experience Experience with or strong interest in Domain-Driven Design Experience with or strong interest in Hexagonal or similar clean architecture patterns Solid knowledge of OOP, SOLID principles, and design patterns Experience designing and building REST APIs Solid SQL knowledge and database optimization (MySQL) Experience with Docker or similar containerized environments Experience writing tests across multiple layers (unit, feature, integration) Ability to work independently and deliver results with ownership AI-Assisted Development (Required) AI is a standard part of our engineering workflow. We expect every developer to be comfortable using modern AI coding assistants (such as Claude, ChatGPT, GitHub Copilot, Cursor, or similar) as part of their daily development workflow. AI is not a replacement for engineering judgment. Developers remain fully responsible for the architecture, correctness, security, maintainability, and testing of the code they deliver. Candidates who are unwilling to embrace AI-assisted development or do not see it as an essential part of their daily workflow are unlikely to be a good fit for this role. Nice to Have Experience with system decomposition and migration strategies Experience with CRM / ERP systems or complex business domains Experience with AWS or similar cloud platforms Familiarity with event-driven architecture What We Expect Strong focus on code quality and maintainability Ability to understand and model real business processes Structured and pragmatic approach to system design Ability to work within a defined architecture while improving it Balance between speed and quality - we ship but we ship well Reliable execution in a team environment Clear communication and ownership What We Offer Work on a greenfield platform with real business context and clear purpose Well-architected codebase built on clean code principles (SOLID, meaningful naming, testability) - static analysis, automated style checks, comprehensive tests are non-negotiable Collaboration with a Tech Lead and cross-functional team Remote work Pragmatic culture focused on delivery and outcomes Tech Stack The platform is built with: PHP 8.4, Laravel 13 Modular Monolith architecture with Hexagonal Architecture principles Domain-Driven Design (DDD) - Aggregate Roots, Value Objects, Repository interfaces CQRS pattern for separating read and write operations MySQL 8 as primary data store PHPUnit - unit, feature, and integration tests Spatie Laravel Data for typed DTOs PHPStan / Larastan for static analysis OpenAPI / Swagger documentation Docker Redis AWS infrastructure CI/CD pipeline for automated checks and deployments Languages English: Required (B2 - Upper Intermediate minimum) Ukrainian: Strongly preferred - the development team is being built primarily with Ukrainian speakers, so it's the main language for daily team communication. However, strong candidates without Ukrainian will still be considered.

Пакети за темою

Laravel Cookie Consent

spatie/laravel-cookie-consent

Пакет допомагає привести Laravel-додаток у відповідність до вимог європейського законодавства щодо cookies.

1,501 3.5.0 13 2

Laravel Cookie Consent

devrabiul/laravel-cookie-consent

GDPR-сумісне рішення для управління згодою на використання файлів cookie в Laravel-додатках з повністю настроюваними банерами cookie, детальним контролем згоди та корпоративними функціями відповідності нормам.

182 v2.1 3