Портал управління музичними правами
Портал управління контентом та відстеження роялті для авторів музики, побудований шляхом адаптації Terrasoft BPM Online — enterprise CRM-платформи — під клієнтську систему управління медіаактивами.
Огляд
Галузь: Музичний паблішинг / Управління цифровими правами
Тип продукту: B2B/B2C портал управління контентом
Архітектура: Terrasoft BPM Online (C# backend, ExtJS frontend) із кастомними BPMN-процесами, інтеграціями зовнішніх сервісів та white-label клієнтським порталом
Портал дозволяв авторам музики реєструватися, завантажувати композиції, підписувати угоди про роялті онлайн та відстежувати статистику завантажень і прослуховувань. Система охоплювала повний lifecycle музичного активу: завантаження → валідація контенту → генерація договору → відстеження дистрибуції. Інтеграція з ESign забезпечувала юридично значущі цифрові договори, а додаткова інтеграція надавала кінцевим користувачам управління плейлистами та радіоканалами через супутній сайт.
Архітектурний контекст
Середовище
- Terrasoft BPM Online v7 (оновлення до v9 в середині проєкту) — базова платформа
- C# application server — виявлено на етапі інтеграції (не задокументовано на старті проєкту)
- ESign — зовнішній сервіс електронного підписання документів
- Супутній портал для покупців і публічний сайт — інтегровані через API
- Production-first розгортання, нав’язане керівництвом — staging-середовище не використовувалося
Стек
- Backend: C# (серверний рівень Terrasoft BPM Online)
- Frontend: JavaScript, ExtJS (нативний UI-фреймворк Terrasoft), jQuery, AJAX
- Розмітка: HTML5, CSS, Bootstrap (кастомні сторінки поза BPM-оболонкою)
- Моделювання процесів: BPMN (вбудований workflow-рушій Terrasoft)
- Інтеграції: ESign API, API супутнього сайту, API порталу покупців
Функціональність
- Реєстрація та автентифікація зовнішніх користувачів у системі, не розрахованій на публічний доступ
- Завантаження кількох аудіофайлів на одній сторінці з відстеженням прогресу
- BPMN-процеси для онбордингу клієнтів, модерації контенту та lifecycle договорів
- Автоматична генерація угод про роялті з інтеграцією ESign для цифрового підписання
- Управління плейлистами та радіоканалами через супутній портал
- Кастомні віджети та сторінки управління об’єктами поверх ExtJS-шару Terrasoft
Мій внесок
- Реалізація флоу реєстрації та автентифікації зовнішніх користувачів у Terrasoft BPM — платформі, архітектурно орієнтованій на внутрішніх enterprise-користувачів
- Побудова інтерфейсу завантаження кількох аудіофайлів на одній сторінці з використанням ExtJS та AJAX, з обробкою чанкового завантаження та серверною валідацією
- Проєктування та реалізація BPMN-бізнес-процесів: реєстрація клієнта з підтвердженням email, подача та модерація аудіоконтенту, автоматична генерація угод про роялті
- Інтеграція ESign API для юридично значущого цифрового підписання договорів у флоу завантаження контенту
- Розробка інтеграційного рівня, що з’єднує BPM-портал із публічним сайтом та платформою для покупців
- Доставка кастомних ExtJS-віджетів та сторінок управління аудіоконтентом, плейлистами та клієнтськими об’єктами
- Керівництво відновленням платформи після збою production-апгрейду v7→v9: аудит усіх кастомних сторінок та об’єктів, усунення breaking changes, відновлення сервісу протягом чотиримісячного відновлення
- Керівництво командою розробки з весни 2017 року: 2 розробники, 1 техлід, 1 системний адміністратор, 1 аналітик
Інженерні кейси
Нецільове використання платформи як проєктне обмеження. Terrasoft BPM Online — інструмент автоматизації enterprise-процесів: управління складом, контракти, закупівлі. Адаптація його під публічний контент-портал із реєстрацією зовнішніх користувачів, медіа-workflows та сторонніми інтеграціями вимагала роботи виключно в межах моделі розширень платформи: кастомні BPMN-процеси, перевизначення ExtJS UI та C# хуки на серверному рівні. Підтримуваного шляху для більшості вимог продукту не існувало — кожна функція була крайнім кейсом використання платформи.
Незадокументований C# backend — виявлено на етапі інтеграції. Через три місяці після старту проєкту інтеграція зовнішніх сервісів виявила, що application server написаний на C# — факт, відсутній у будь-якій початковій документації. Це потребувало швидкої крос-шарової діагностики: трасування інтеграційної поверхні від ExtJS клієнтських викликів до серверного рівня BPM, а потім картування доступних точок розширення C# для сервісних конекторів. Підхід production-first не залишав місця для тривалого розслідування — інтеграція мала просуватися без зупинки паралельних фронтендних робіт.
Збій апгрейду v7→v9 та відновлення. Керівництво форсувало прямий production-апгрейд з BPM v7 до v9, оминаючи будь-яку staging-валідацію. Різниця між версіями платформи спричинила breaking changes у всіх кастомних об’єктах, сторінках та BPMN-визначеннях процесів — передбачуваний наслідок оновлення сильно кастомізованого нестандартного розгортання. Аналіз першопричин визначив ~4 місяці обсягу відновлення: посторінковий аудит, міграція схем об’єктів, реконструкція workflow-процесів та регресійне тестування в живому production-середовищі. Інцидент є хрестоматійним прикладом ціни ігнорування паритету середовищ і нехтування інженерною оцінкою ризиків.
Технології
C#, JavaScript, ExtJS, jQuery, AJAX, HTML5, CSS, Bootstrap, BPMN
