IndoorMedia

Портал управління музичними правами

Портал управління контентом та відстеження роялті для авторів музики, побудований шляхом адаптації 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

Indoormedia - ExpertMusic
Indoormedia – ExpertMusic