Budżet: 3000 UAH Termin: 3 dni
Dzień dobry. Mam doświadczenie w pracy z AI, w szczególności z ChatGPT. Gotowy podjąć się Państwa zadania.
Budżet: 3000 UAH Termin: 3 dni
Dzień dobry. Mam doświadczenie w pracy z AI, w szczególności z ChatGPT. Gotowy podjąć się Państwa zadania.
ТЗ: Программа для автосборки видео (локальная, для личного использования) Коротко Программа на Python, запускаетсяу меня на ПК (Windows). Делает faceless-видео формата «закадровый голос + сменяющийся видеоряд из фото и клипов» — как исторические документалки на YouTube (референсы прикреплю отдельно). Я ввожу тему → программа пишет сценарий, озвучивает, подбирает под каждый кусок текста видео/фото из бесплатных архивов, собирает → выдаёт готовый MP4. Только для меня. Без сайта, без пользователей, без продажи. Разделение ролей (важно понять) Claude (Anthropic API) — «мозг»: пишет сценарий, делит на сцены, выбирает лучший кадр по смыслу. Работает только с текстом и картинками. Код (ffmpeg/moviepy) — «руки»: ищет и качает файлы из архивов, режет, склеивает, накладывает звук, зум, переходы, экспортирует MP4. Claude видеофайлы НЕ монтирует — это делает код. Как работает (по шагам) 1. Ввод. Простое окно: ввожу тему ролика, выбираю голос озвучки из списка (список голосов подтягивается из ElevenLabs по API). Жму «Создать». Второй режим — вставить готовый сценарий. 2. Сценарий. Claude пишет сценарий по теме заданной длины. 3. Разбивка на сцены. Claude делит сценарий на смысловые сцены (длина по смыслу, не фиксирована) и для каждой возвращает: текст сцены; тип визуала: видео или фото; поисковый запросв двух форматах сразу (Claude отдаёт оба в одном ответе, лишних запросов и затрат нет): развёрнутая фраза — для стоков (Pexels/Pixabay), напр. «18th century royal portrait, dramatic turning point»; краткие ключевые термины/имена — для архивов (Wikimedia, LoC, Archive.org, Europeana), напр. «Marie Antoinette portrait». Код под каждый источник берёт подходящий формат. Claude генерирует запрос по СМЫСЛУ куска и контексту всего видео — даже для абстрактных кусков без явного объекта. Пустых кусков «без запроса» не бывает; highlight: true/false + оценка важности 1-10 (для интро-тизера). Смысловая сцена ≠ кадр. Claude делит текст по СМЫСЛУ (чтобы запрос был осмысленный). Код затем нарезает это на визуальные кадры 4-6 сек, подгоняя тайминг под озвучку: короткая сцена (≤6 сек) → 1 кадр; длинная сцена (напр. 12 сек) → 2-3 кадра по 4-6 сек, под каждый — РАЗНЫЙ, но близкий по смыслу визуал (та же тема, другие ракурсы/кадры), чтобы мысль не висела на одной статичной картинке. Правило 4-6 сек относится к кадру, а не к смысловой разбивке — они на разных уровнях и не конфликтуют. 4. Озвучка. Текст → ElevenLabs API выбранным голосом → аудио. Под длину аудио каждой сцены режется видеоряд. 5. Подбор кадра (ключевой процесс, см. раздел ниже). 6. Сборка через ffmpeg/moviepy: клипы/фото под тайминг озвучки, фото с зумом (эффект Кена Бёрнса), простые переходы, голос поверх. Выход:MP4 1920×1080. Подбор кадра (как выбирается видео/фото под сцену) Поиск во всех источниках сразу по запросу сцены. Под каждый источник берётся подходящий формат запроса (см. разбивку выше): для архивов — краткие термины/имена, для стоков — развёрнутая фраза. Цель — попадать в тему, а не в случайную картинку. Код отбирает топ-5 кандидатов из всей выдачи по баллам (scorer, см. правила ниже). Для видео код извлекает 2-3 стоп-кадра из разных точек клипа (начало/середина/конец) — чтобы Claude оценил клип по кадрам. Claude выбирает лучший из 5 кандидатов по смыслу (реально ли на кадре нужное, подходит ли по настроению сцены). Лимит 3 шага на сцену: нашли подходящее — стоп; если после проверки ничего не подошло — код берёт более общее фото по упрощённому запросу (оно точно найдётся) с усиленным движением. Проверяются ВСЕ кадры (разница в цене копеечная, а качество важнее). Правила отбора кандидатов (scorer) — чтобы брать хорошее, а не мусор Релевантность запросу (позиция в выдаче источника) — главный вес. Не использовалось раньше — проверка по локальной базе использованного, не повторять клипы в моих видео. Формат — горизонтальные 16:9 в приоритет. Качество — ПО-РАЗНОМУ для типа источника: современные стоки (Pexels/Pixabay) — отсекать мыло, требовать HD; исторические архивы — порог низкий/выключен, НЕ терять плёночные и хроникальные кадры, даже низкого разрешения (их ценность в самом материале, а не в чёткости). Длина клипа (для видео) — хватает ли покрыть сцену. Разнообразие — не брать много одинаковых кадров подряд из одного источника, перемешивать источники (чтобы видеоряд был разнообразным, а не из одного архива). Уникальность (меньше совпадений с чужими видео) Рандомизация выдачи (случайный из топ-N, не всегда первый), глубина поиска, локальная база использованного (не повторять клипы в моих видео), опционально — лёгкая обработка клипа (кроп/зеркало/скорость).Когда неиспользованные кадры под запрос кончились: код сначала расширяет поиск (другие источники, глубже в выдачу, переформулировка запроса). Если и это исчерпано — разрешает повтор ранее использованных по приоритету: сначала те, что брались давно (не в последних видео), с обязательной обработкой для визуального отличия. Видео не должно вставать из-за нехватки материала. Источники (все бесплатные, с API) Современное видео+фото: Pexels, Pixabay. Историческое / архивное (public domain): Wikimedia Commons, Archive.org, Library of Congress, Europeana, NASA, Smithsonian Open Access, Flickr Commons,openverse. Каждый источник — отдельный модуль, легко добавить новый. Приоритет источников зависит от темы (историческая → сначала архивы; современная → сначала стоки), настраивается в конфиге. Только public domain / свободные лицензии с правом коммерческого использования. Никакого парсинга чужих YouTube/сайтов, кусков фильмов, картинок «из гугла». Правила видеоряда Интро-тизер (первые 60 сек): нарезка самых эффектных кадров из всего ролика (сцены с наибольшей оценкой важности, где есть видео) под отдельный текст-вступление от Claude («в этом видео вы узнаете…»), кадры без пояснений — как интрига. Потом переход и основная часть. Чередование: видео-вставка минимум каждые ~6 сек, нельзя много фото подряд. Доля видео: не меньше ~40% времени — живые клипы, остальное — фото с движением. Длина кадра: 4-6 сек. Не мельтешить, не держать статику долго. Для чисто исторических тем, где видео нет — фото с усиленным движением (зум + панорама). Опции (вкл/выкл в настройках) Только фото — видео чисто из фото, без клипов. Каждое фото обязательно с движением (зум/ панорама) — статичных «мёртвых» кадров нет даже в этом режиме. Без озвучки — видео собирается по тексту без генерации голоса (код не обращается к ElevenLabs). Иначе — озвучка делается автоматически. Атмосферный оверлей (light leaks / dust & bokeh particles / film grain) — полупрозрачный слой с плавающими частицами/светом/лёгким туманом поверх видеоряда, чтобы кадры выглядели живыми. Установить 5-8 готовых оверлеев на выбор; регулировка прозрачности ползунком (0-100%); можно накладывать и на уже готовое видео отдельно. Бесплатные оверлеи: Pexels, Pixabay, Mixkit, Videezy. Субтитры (вшить или отдельным .srt). Обработка клипов для уникальности. Разрешение/формат, длина видео, доля видео, глубина поиска, число кандидатов (по умолч. 5). Экономия LLM (заложить по умолчанию) Модели — Claude (Anthropic API), раздельно для двух задач, параметр в настройках: проверка/выбор кадров (частая операция) →Claude Haiku — дешёвая, анализирует стоп-кадры (картинки), для оценки «подходит/нет» этого достаточно; генерация сценария и разбивка (редкая операция) →Claude Sonnet — для качества текста. Один API-ключ Claude даёт доступ ко всем моделям (Haiku, Sonnet и др.) — отдельные подписки не нужны. Модель для каждой задачи меняется в настройках, без правки кода. Если модель не выбрана — используется модель по умолчанию (не ломается). Картинки отправляются как превьюсреднего разрешения (~512-768px по длинной стороне) — достаточного, чтобы Claude уверенно распознал содержимое и оценил соответствие сцене. Не слать оригиналы в полном разрешении (лишние токены), но и НЕ уменьшать до потери деталей — приоритет у точности оценки, экономия вторична. Разрешение превью — параметр в настройках. Число кандидатов на кадр — параметр (по умолчанию 5). Управление местом на диске После сборки все промежуточные файлы (скачанные клипы, временные куски) удаляются автоматически — остаётся только готовый MP4. База использованного (список ID клипов) НЕ входит в автоочистку — это маленький текстовый файл, хранится постоянно. Чистятся только тяжёлые медиафайлы, не история использования. Лимит на кэш (параметр, напр. 5 ГБ): при превышении удаляются самые старые файлы. Папки для готовых видео и временных файлов задаю в настройках. Показ занятого места + кнопка «очистить кэш». Технические требования Python. Модульная структура (источники и LLM — сменные модули, чтобы легко заменить/добавить). Все API-ключи вводятся через интерфейс (раздел «Настройки»), хранятся в конфиге, не в коде. Простое окно (GUI — Tkinter/PyQt на выбор), запуск двойным кликом. Вся работа — через интерфейс (кнопки, поля, ползунки), без редактирования кода. README (установка, ключи, запуск), понятные логи, комментарии в коде. Интерфейс (меню и управление) Программа с боковым меню. Разделы: Новое видео — режим «сгенерировать по теме» ИЛИ «вставить свой сценарий» (переключатель), выбор голоса, длины, опции, кнопка «Создать». Во время сборки — экран прогресса по шагам (сценарий → озвучка → подбор кадров → сборка). Мои видео — список готовых роликов. Голоса — список голосов из ElevenLabs. Источники — список всех подключённых архивов: видно добавленные, можно включить/выключить каждый, задать приоритет, идобавить свой новый источник, если есть его API-ключ. Здесь же — ключи источников, где нужна регистрация (Pexels, Pixabay, Europeana). Оверлеи — выбор атмосферного оверлея и прозрачности. Настройки — раздел«API-ключи» (Claude, ElevenLabs и др. в одном месте), выбор моделей Claude, папки, разрешение/формат, лимит кэша. Очистить кэш — освободить место. Все ключи и настройки вводятся через интерфейс, не через файлы/код. Передача результата Весь исходный код в открытом виде (без обфускации) + собранная рабочая версия. Я могу сам запустить из исходников по инструкции. Код чистый и понятный, чтобылюбой другой программист мог продолжить. Все права на код после оплаты — мои. Что даю я API-ключи (Claude, ElevenLabs и источники, где нужна регистрация). Платное оплачиваю сам. Примеры видео-референсов и темы для тестов. Приёмка (готово, если) Запускаю → окно → ввожу тему, выбираю голос → «Создать» → получаю готовый MP4. Видеоряд по смыслу текста, чередование видео/фото, интро-тизер 60 сек, озвучка поверх. Работает минимум с 6 бесплатными источниками, поиск во всех сразу + отбор кандидатов. Подбор кадра: топ-5 кандидатов от кода → выбор лучшего через Claude (для видео — по стоп-кадрам), лимит 3 шага. Порог качества зависит от источника (архивы — не терять плёночны
Krótko Potrzebny program w Pythonie, który uruchamia się na moim PC (Windows) i tworzy faceless-wideo w formacie „głos lektora + zmieniający się materiał wideo z zdjęć i klipów” — jak dokumenty historyczne na YouTube (przykład dołączę osobno). Wprowadzam temat → program pisze scenariusz, lekturuje, dobiera do każdego fragmentu tekstu wideo/zdjęcia z darmowych archiwów, montuje → wydaje gotowy MP4. Tylko dla mnie. Bez strony, bez użytkowników, bez sprzedaży. Jeden użytkownik — ja. Jak działa (krok po kroku) 1. Wprowadzenie. Otwiera się proste okno. Wprowadzam temat filmu i wybieram głos lektora z listy (**lista głosów pobierana automatycznie z ElevenLabs przez API** — dostępne na moim koncie). Klikam „Utwórz”. (Drugi tryb: wklejenie gotowego scenariusza zamiast generacji.) 2. Scenariusz. Program przez LLM API (OpenAI/Anthropic, klucz w ustawieniach) pisze scenariusz na zadany temat o określonej długości. 3. Podział na sceny. LLM dzieli scenariusz na sceny i dla każdej zwraca: tekst sceny; typ wizualizacji: wideo lub zdjęcie; zapytanie wyszukiwania (rozwinięta fraza, co powinno być w kadrze); oznaczenie „highlight” + ocenę ważności 1-10 (dla intro, patrz poniżej). 4. Lektura. Tekst wysyłany jest do ElevenLabs API wybranym głosem → audio. Pod długość audio każdej sceny przycinany jest materiał wideo. 5. Dobór wideo/zdjęć — z darmowych źródeł przez API (patrz lista poniżej). Dla każdego źródła zapytanie formułowane jest na swój sposób (dla dokładności). Jeśli w jednym nie znaleziono — próbuje następnego. 6. Weryfikacja (maksymalnie 3 kroki na scenę). Krok 1: program bierze pierwszy znaleziony wariant (wideo/zdjęcie) według zapytania. Krok 2: wysyła kadr do LLM — „czy pasuje do sceny?”. Pasuje → stop. Krok 3 (jeśli nie pasuje): program przełącza się na wyszukiwanie zdjęć (po dokładnym zapytaniu zdjęcia znaleźć łatwiej niż wideo, — tak gwarantujemy trafność w sensie) i bierze je z wzmocnionym ruchem (zoom + panorama). Nie robić więcej niż 3 kroki na jedną scenę — to oszczędza budżet LLM i gwarantuje, że kadr jest w temacie. 7. Montaż przez ffmpeg/moviepy: klipy i zdjęcia pod timing lektury, zdjęcia ożywiane zoomem (efekt Kena Burnsa), głos na wierzchu, proste przejścia. Wyjście: MP4 1920×1080. Reguły materiału wideo (ważne — za to odpowiada program) Pierwsze 60 sekund — intro-teaser: montaż najbardziej efektownych klipów z całego filmu (brane są sceny z najwyższą oceną ważności, gdzie jest wideo) pod osobny tekst-wprowadzenie od LLM („w tym filmie dowiesz się…”), kadry bez wyjaśnień, jak intryga. Potem przejście i główna część. Naprzemienność: wstawka wideo minimum co ~6 sekund, nie można mieć wielu zdjęć pod rząd. Udział wideo: nie mniej niż ~40% czasu — żywe klipy, reszta — zdjęcia z zoomem. Długość kadru: 4-6 sekund (i zdjęcia, i wideo). Nie migać, nie trzymać statyki długo. Dla czysto historycznych tematów, gdzie nie ma wideo — zdjęcia z wzmocnionym ruchem (zoom + panorama). Źródła (wszystkie darmowe, z API) Nowoczesne wideo+zdjęcia: Pexels, Pixabay. Historyczne / archiwalne (public domain): Wikimedia Commons, Archive.org,Biblioteka Kongresu, Europeana, NASA, Smithsonian Open Access,Flickr Commons, openverse. Każde źródło — oddzielny moduł, łatwo dodać nowe. Używać tylko public domain / wolnych licencji z prawem do komercyjnego wykorzystania. Żadnego parsowania cudzych YouTube/stron, fragmentów filmów, obrazków „z googla”.Unikalność doboru Aby wideo nie pokrywały się z cudzymi: brać losowy klip z top-wyników (nie pierwszy), prowadzić bazę już użytych (nie powtarzać), opcjonalnie — lekka obróbka klipu (crop/lustro/szybkość). Opcje (włącz/wyłącz w ustawieniach) Tylko zdjęcia — jeśli włączone, wideo zbierane jest CZYSTO z zdjęć, bez klipów wideo. Każde zdjęcie OBOWIĄZKOWO z ruchem (zoom i/lub panorama, efekt Kena Burnsa) — nawet w tym trybie nie powinno być statycznych „martwych” kadrów, minimalna dynamika zawsze. Jeśli wyłączone — standardowy tryb (zdjęcia + klipy wideo z naprzemiennością, jak w regułach materiału wideo). Bez lektury — jeśli włączone, wideo zbierane jest według tekstu BEZ generacji głosu: kod NIE zwraca się do ElevenLabs i nie nakłada lektury (materiał wideo dobierany jest według tekstu scen, timing kadrów — według reguł/parametrów, bez powiązania z audio). Jeśli wyłączone — automatycznie robi lektury według tekstu przez ElevenLabs, jak zwykle. Atmosferyczny overlay — jeśli włączone, na całym materiale wideo nakładany jest półprzezroczysty layer z unoszącymi się cząstkami / pyłem / świecącym bokeh / lekką mgłą (particle / dust / bokeh / fog overlay, tryb nakładania screen/add), aby kadry wyglądały na żywe i filmowe. Przy instalacji programu umieszczany jest zestaw z 5-8 popularnych overlayów (cząstki, pył,copybokeh, mgła, lekkie filmowe „ziarnko”) w lokalnym folderze — wybieram potrzebny z listy. Regulowana przezroczystość/jasność overlayu (suwak 0-100%), aby efekt nie był anicopyzbyt przyciemniony, ani zbyt wyraźny — sam dostosowuję siłę. Pożądane, aby overlay można było nakładać i na JUŻ gotowe wideo osobnocopy(postprodukcja: wziąć gotowy MP4 → wybrać overlay → ustawić przezroczystość → zapisać), a nie tylko przy montażu. Skąd wziąć overlaye do kompletu (wolna licencja): Pexels, Pixabay (zapytaniacopy„particle overlay”, „bokeh overlay”, „dust overlay”, „light leaks”, „film grain”), Mixkit, Videezy. Wykonawca dobiera 5-8 sztuk i umieszcza w folderze programu. Napisy (wbudowane lub osobnym .srt). Obróbka klipów dla unikalności. Rozdzielczość/format, długość wideo, udział wideo, głębokość wyszukiwania.Wymagania techniczne Python. Modułowa struktura (źródła i LLM — przez wymienne moduły, aby łatwo zamienić lub dodać). Wszystkie klucze API — w pliku ustawień, nie w kodzie. Proste okno (GUI do wyboru wykonawcy — Tkinter/PyQt), uruchamiane podwójnym kliknięciem. README z instrukcją, zrozumiałe logi, komentarze w kodzie.Co daję ja Klucze API (ElevenLabs, LLM, gdzie potrzebna rejestracja — załatwię). Płatne opłacam sam. Przykłady wideo-referencji (dołączę) i przykłady tematów do testów.Odbiór (gotowe, jeśli) Uruchamiam → okno → wprowadzam temat, wybieram głos → „Utwórz” → otrzymuję gotowy MP4. Materiał wideo zgodny z sensownym tekstem, naprzemienność wideo/zdjęć, intro-teaser 60 sek, lektura na wierzchu. Działa minimum z 6 darmowymi źródłami, z fallbackiem między nimi. Weryfikacja kadrów przez LLM: maks. 3 kroki na scenę (znaleziono → LLM sprawdził → jeśli nie, zdjęcie z ruchem jako pewniak). Unikalność: randomizacja + baza używanego. Tylko legalne źródła. Jest README, uruchamia się od zera.Przekazanie wyniku Cały kod źródłowy — w otwartej formie (wszystkie pliki), bez obfuskacji + zbudowana wersja robocza. Mogę sam uruchomić z źródeł według instrukcji (README: instalacja, klucze, uruchomienie). Kod musi być czysty, skomentowany i zrozumiały, aby **każdy inny programista mógł kontynuować pracę** nad nim, jeśli zajdzie taka potrzeba (bez powiązania z autorem). **Cała codzienna praca — przez interfejs (przyciski, pola, suwaki, rozwijane listy), BEZ potrzeby dotykania kodu.** Wszystkie ustawienia (temat, głos, opcje, overlay, foldery, długość, formaty) zmieniają się w oknie programu, a nie edytowaniem plików. Kod w rękach — tylko jako moja własność i zabezpieczenie, a nie jako sposób zarządzania programem. Wszystkie prawa do kodu po zapłacie — moje.Zarządzanie miejscem na dysku (ważne) Program nie powinien zapełniać dysku. Zrealizować: Po zmontowaniu wideo wszystkie pliki pośrednie (pobrane klipy, tymczasowe fragmenty, audio-clipy) automatycznie usuwane — na dysku pozostaje tylko gotowy MP4. Limit na cache (parametr w ustawieniach, np. 5 GB): przy przekroczeniu stare pobrane pliki usuwane są automatycznie (najpierw najstarsze). Folder dla gotowych wideo i dla plików tymczasowych ustalam w ustawieniach. Pokazywać, ile miejsca zajęte, i przycisk „wyczyść cache” ręcznie.Proszę wskazać w odpowiedzi Przykłady podobnych prac (ffmpeg/moviepy, praca ze stockowymi/archiwalnymi API, ElevenLabs/LLM). Propozycja dotycząca GUI. Czy rozwiązanie wykorzystuje bazę danych (jaką i po co) — czy wystarczą lokalne pliki. Termin i koszt.
Opracowujemy integrację w czasie rzeczywistym z zewnętrzną usługą Trener. Wysyłamy zorganizowane zrzuty stanu, otrzymujemy rekomendacje i pokazujemy je w wyskakującym oknie. Zadanie — stabilne i pełne przesyłanie danych dla prawidłowego działania Trenera. Szukamy programisty do łańcucha: przetwarzanie danych → komunikacja HTTP → nakładka. Potrzebni są ludzie z takimi umiejętnościami Python dobrze, Java podstawy, API HTTP/JSON-APIs Projekt gotowy w 90%, ale są pewne niezgodności
Wymagana jest разработка lokalnego skryptu Python do automatycznego wypełniania Google Arkuszy danymi z wewnętrznego serwisu firmy. Główna logika: 1. Połączyć się z Google Arkuszem. 2. Znaleźć wiersze, w których wypełniony jest ID, ale brakuje dwóch docelowych wartości. 3. Sformułować link według szablonu: https://internal-service.example/item/{ID} 4. Uzyskać dwie wartości (przez API, jeśli istnieje, w przeciwnym razie przez Playwright). 5. Zapisz wartości z powrotem do Google Arkusza. 6. Oznaczyć wiersz jako przetworzony. 7. Kontynuować przetwarzanie kolejnych wierszy. Wymagania: • Python • Google Sheets API • Priorytetowe użycie oficjalnego API • W przypadku braku API — Playwright • Bez OCR, rozpoznawania ekranu i współrzędnych myszy • Poufne dane nie powinny trafiać do logów • Konfiguracja przez .env • Tryb testowy (bez zapisu do arkusza) • Nie przetwarzać już wypełnionych wierszy • Zbiorowe zapisywanie zmian w Google Sheets • Poprawne przetwarzanie błędów i ponownych prób Wymagane do dostarczenia: - kod źródłowy; - requirements.txt; - przykład .env.example; - instrukcja instalacji; - instrukcja uruchamiania; - krótki opis architektury. Przed rozpoczęciem realizacji proszę: 1. Zaproponować architekturę. 2. Wymienić niezbędne dostępności. 3. Zadać pytania wyjaśniające. 4. Podać koszt, terminy i orientacyjną liczbę godzin.
W ramach podnoszenia poziomu cyberbezpieczeństwa naszej infrastruktury musimy zrezygnować z praktyki przechowywania „wiecznych” i statycznych kluczy API, haseł oraz tokenów integracji w plikach konfiguracyjnych (.env, appsettings.json, config.yaml) naszych mikroserwisów. Cel biznesowy: Stworzyć jednolity, zabezpieczony punkt przechowywania danych poufnych (sekretów) z mechanizmem ich automatycznego aktualizowania (rotacji) w systemach zewnętrznych według harmonogramu. Inne nasze usługi będą żądać aktualnych tokenów „na żywo” przez API, co zminimalizuje szkody w przypadku kompromitacji któregokolwiek z komponentów systemu.Model bezpieczeństwa i szyfrowanie (Crypto Core) W bazie danych żaden sekret nie powinien być przechowywany w postaci jawnej. Podczas uruchamiania aplikacji do zmiennych środowiskowych przekazywany jest Klucz główny (Master Key). Jeśli klucz jest nieobecny lub ma nieprawidłową długość, usługa powinna zakończyć działanie na etapie inicjalizacji z zrozumiałym błędem w logach. Każdy sekret jest szyfrowany przed zapisaniem w bazie danych z użyciem tego Klucza głównego. Przy żądaniu — jest deszyfrowany w pamięci i zwracany w treści odpowiedzi.Audyt-logowanie (Audit Trail) Każda akcja z sekretami (tworzenie, odczyt przez usługę, udana lub nieudana rotacja) powinna być zapisywana w oddzielnym pliku logów audit.log (lub w oddzielnej tabeli w bazie danych). Ścisły zakaz: W audyt-logu kategorycznie zabrania się zapisywania samych wartości sekretów (ani w postaci jawnej, ani w postaci zaszyfrowanej).