[{"data":1,"prerenderedAt":794},["ShallowReactive",2],{"blog-uk-supabase-point-in-time-recovery":3,"blog-index-uk":444},{"id":4,"title":5,"body":6,"category":401,"cover":402,"coverAlt":403,"description":404,"draft":405,"extension":406,"faq":407,"image":422,"keywords":423,"meta":431,"navigation":432,"ogTitle":433,"path":434,"published":435,"seo":436,"stem":437,"tldr":438,"updated":435,"__hash__":443},"blog_uk\u002Fblog\u002Fsupabase-point-in-time-recovery.md","Point-in-time recovery у Supabase: ціна та межі",{"type":7,"value":8,"toc":387},"minimark",[9,13,16,19,24,27,30,33,44,48,51,54,98,101,109,112,116,119,127,130,136,143,147,150,157,166,170,173,176,184,188,191,194,199,202,205,209,212,291,294,298,320,324,327,332,364,372,379],[10,11,12],"p",{},"Ви на плані Supabase Pro, щось пішло не так у час, який ви могли б записати, а\nнічна копія старша за помилку. Десь у панелі є перемикач із назвою Point in\nTime Recovery і ціною поруч, і питання в тому, чи купує ця ціна те, що ви\nдумаєте.",[10,14,15],{},"Ось частина, яку сплющує кожен огляд: point-in-time recovery і копія, яку\nтримаєте ви, це два різні продукти, і ввімкнення першого нічого не змінює в\nтому, для чого існує другий. У панелі обидва лежать під заголовком Backups, і\nзвідси береться більша частина плутанини.",[10,17,18],{},"Допомагає думати про одне як про запис, а про інше як про фотографію. Щоденна\nкопія це фотографія: один кадр на день, зроблений о сталій годині, і ви можете\nвинести його з будівлі. Point-in-time recovery це камера самої будівлі, яка\nпрацює безперервно й дає зупинитися на будь-якому кадрі. Плівки лежать у\nпідвалі й сягають тижня назад.",[20,21,23],"h2",{"id":22},"що-таке-point-in-time-recovery-у-supabase","Що таке point-in-time recovery у Supabase?",[10,25,26],{},"Це спосіб повернути базу даних на конкретний момент, а не на конкретну копію.",[10,28,29],{},"Supabase будує його з двох речей, які працюють разом. Перша це фізична копія,\nщоденний знімок файлів бази. Друга це архівування Write Ahead Log: Postgres\nведе безперервний запис кожної зміни, яку робить, а Supabase відносить ці файли\nкожні дві хвилини або одразу, щойно один із них переходить певний розмір.\nВідновлення завантажує знімок і далі програє журнал уперед, доки не дійде до\nмоменту, який ви попросили.",[10,31,32],{},"Саме з цього механізму й береться точність. Supabase описує результат як\nдеталізацію аж до секунд, із найгіршим випадком, який вони оцінюють як Recovery\nPoint Objective у дві хвилини, тобто найбільше, що ви могли б втратити в кінці\nобраного моменту.",[10,34,35,36,43],{},"Їхня\n",[37,38,42],"a",{"href":39,"rel":40},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[41],"nofollow","документація з резервних копій","\nце сторінка, де лежить поточний вигляд усього цього. Усе нижче спирається на\nцифри, які належать їм.",[20,45,47],{"id":46},"скільки-коштує-point-in-time-recovery-у-supabase","Скільки коштує point-in-time recovery у Supabase?",[10,49,50],{},"$100 на місяць за вікно в сім днів, понад план Pro, який сам по собі коштує $25\nна місяць.",[10,52,53],{},"Supabase тарифікує доповнення погодинно й продає три розміри вікна:",[55,56,57,70],"table",{},[58,59,60],"thead",{},[61,62,63,67],"tr",{},[64,65,66],"th",{},"Вікно відновлення",[64,68,69],{},"Скільки бере Supabase",[71,72,73,82,90],"tbody",{},[61,74,75,79],{},[76,77,78],"td",{},"7 днів",[76,80,81],{},"$0.137 за годину, близько $100 на місяць",[61,83,84,87],{},[76,85,86],{},"14 днів",[76,88,89],{},"$0.274 за годину",[61,91,92,95],{},[76,93,94],{},"28 днів",[76,96,97],{},"$0.55 за годину",[10,99,100],{},"У рахунку є другий рядок, і саме він застає людей зненацька. Point-in-time\nrecovery вимагає щонайменше обчислювального інстанса Small. Проєкт на Pro за\nзамовчуванням працює на Micro, і $10 обчислювального кредиту, включені в план,\nпокривають його повністю; Small коштує близько $15 на місяць, тож кредит\nперестає покривати ваші обчислення, а решта починає зʼявлятися в рахунку.\nДоповнення через це виходить трохи дорожчим за цифру, надруковану поруч із ним.",[10,102,103,104,108],{},"Воно доступне на Pro, Team та Enterprise. На безкоштовному плані немає до чого\nйого додавати, бо\n",[37,105,107],{"href":106},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","безкоштовний план не робить жодних автоматичних копій",".",[10,110,111],{},"Звіряйте обидві цифри зі сторінкою цін самого Supabase того дня, коли\nвирішуватимете, а не з цією сторінкою. Цифри належать їм, і ця сторінка не\nпомітить, коли вони зміняться.",[20,113,115],{"id":114},"коли-point-in-time-recovery-вартий-своїх-грошей","Коли point-in-time recovery вартий своїх грошей?",[10,117,118],{},"Коли ви можете назвати хвилину і коли робота по обидва боки від неї має вагу.",[10,120,121,122,126],{},"Міграція відпрацювала о 14:32 і забрала з собою колонку. Скрипт, який ви\nзапустили в обід, записав хибне значення в кожен рядок.\n",[37,123,125],{"href":124},"\u002Fblog\u002Fai-agent-deleted-my-database","Аґент зі штучним інтелектом дістав доступ на запис і скористався ним",".\nУ всіх трьох випадках ви знаєте коли, і це коли є всім, що потрібно на вході. Ви\nобираєте 14:31, і база повертається такою, якою стояла за хвилину до шкоди.",[10,128,129],{},"Грошей коштує решта того ранку. Відновлення опівнічної копії стирає ще й кожну\nреєстрацію, кожне замовлення й кожне повідомлення, які ваші користувачі створили\nпісля півночі, тож скасувати одну помилку означає пристати на другу, меншу\nвтрату. З point-in-time recovery ранкова робота лишається на місці.",[131,132],"diagram",{"alt":133,"caption":134,"src":135},"Дві лінії часу з однією й тією самою поломкою, позначеною хрестиком. На верхній суцільний ряд дрібних рисок дає позначці стати одразу перед поломкою, і дужка між ними коротка. На нижній позначка стоїть на останньому з пʼяти широко розставлених документів, а дужка до поломки в кілька разів довша.","Та сама пригода на двох лініях часу. Дужка це те, що ви набиратимете заново.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fto-the-second-or-to-the-night-1600x560.png",[10,137,138,139,108],{},"Поки ви в панелі й думаєте, що може піти не так, варто знати й те, що ваш\nзастосунок уже показує сторонньому. Наше безкоштовне сканування читає ваш живий\nсайт іззовні й каже, що бачить. Це близько 20 секунд і жодного акаунта:\n",[37,140,142],{"href":141},"\u002Fsecurity-scanner","просканувати застосунок",[20,144,146],{"id":145},"чого-point-in-time-recovery-не-дістає","Чого point-in-time recovery не дістає",[10,148,149],{},"Двох речей: помилки, яку ви помітили після того, як вікно проїхало, і акаунта, у\nякому лежить уся ця конструкція.",[10,151,152,156],{},[153,154,155],"strong",{},"Помилка, помічена пізно."," Вікно рухається разом із сьогоднішнім днем, тож\nвікно в сім днів це завжди останні сім днів і ніколи не стала тижнева рамка. Для\nвидалення це щедро, бо видалення зазвичай дає про себе знати за хвилини. З\nтихими воно не допомагає взагалі: форма, яка з позаминулого вівторка зберігає\nхибне значення, колонка, що зникла в міграції, яку ніхто уважно не читав, поле,\nяке скрипт переписує вже місяць. Такі речі спливають, коли пише клієнт, а\nклієнт, який пише, рідко робить це протягом семи днів після причини.",[10,158,159,162,163,108],{},[153,160,161],{},"Акаунт, у якому живе відновлення."," Знімки й архівований журнал лежать\nусередині вашого проєкту Supabase, і саме це робить їх швидкими й зводить до\nодного кліку. Це також означає, що призупинений проєкт, протермінована картка\nчи вхід, який ви не можете відновити, забирають відновлення разом із тим, що\nвоно мало рятувати. Це чесний обмін, а не вада, і саме тому\n",[37,164,165],{"href":106},"копія всередині вашого акаунта це лише половина страхувальної сітки",[20,167,169],{"id":168},"чи-покриває-point-in-time-recovery-мої-файли-зі-storage","Чи покриває point-in-time recovery мої файли зі Storage?",[10,171,172],{},"Ні. Слова самого Supabase такі: резервні копії бази даних не містять обʼєктів,\nякі ви зберігаєте через Storage API, а point-in-time recovery є функцією бази.",[10,174,175],{},"Кожен аватар, кожен завантажений PDF і кожне фото товару, які додали ваші\nкористувачі, живуть у Storage, а це окремий сервіс. Ваша база тримає шлях до\nкожного файлу й нічого з його вмісту. Тож база, відмотана на вівторок, вказує на\nте, що лежить у ваших бакетах сьогодні, а файл, видалений у середу, лишається\nвидаленим після бездоганно виконаного відновлення.",[10,177,178,179,183],{},"Хоч би що ви вирішили на цій сторінці, ваші файли потребують власної відповіді.\n",[37,180,182],{"href":181},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Три способи зробити резервну копію бази Supabase","\nрозповідає, де їх лишає кожен шлях.",[20,185,187],{"id":186},"чи-може-сторонній-інструмент-дати-мені-point-in-time-recovery","Чи може сторонній інструмент дати мені point-in-time recovery?",[10,189,190],{},"Ні, і це те твердження в темі, яке найбільше варто роздивитися спокійно, бо\nзвучить як порівняння можливостей, а є різницею категорій.",[10,192,193],{},"Point-in-time recovery відтворює write-ahead log, а цей журнал є файлом на\nдиску, де працює ваша база. Прочитати його означає стояти на тій машині. Кожен\nзовнішній інструмент резервного копіювання, наш зокрема, підключається до вашої\nбази так само, як ваш застосунок, питає в неї вміст і записує відповідь. На\nвиході виходить логічний дамп: повна переносна копія всього, що було в базі на\nмомент, коли дамп відпрацював.",[131,195],{"alt":196,"caption":197,"src":198},"Пунктирна межа навколо бази даних. Усередині суцільний ряд дрібних рисок живить збережений файл. Пунктирна лінія, що намагається винести цей ряд назовні, перекреслена. Друга лінія виходить із бази, перетинає межу й приходить збереженим файлом, який перечитують через лупу й позначають галочкою.","Інструмент за межею може попросити в бази її вміст. Живий журнал, що лишився за межею, це не те, що можна йому подати.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fthe-log-stays-inside-1600x600.png",[10,200,201],{},"Дамп це знову фотографія. Ви можете забрати його куди завгодно, завантажити в\nщойно створений проєкт на іншому акаунті й прочитати звичайними інструментами\nPostgres, які про Supabase ніколи не чули. Чого ви не зможете, так це\nзупинитися між двома дампами, бо між ними нічого не записувало.",[10,203,204],{},"Отже, чесна версія порівняння. Якщо вам треба потрапити на 14:31, купуйте\nдоповнення Supabase; ніхто за межами платформи не в змозі вам це продати.\nПостачальник, який рекламує point-in-time recovery поверх зʼєднання, описує\nрозклад, і одне питання розділяє ці дві речі: його відновлення потрапляє на\nхвилину, яку ви набрали, чи на останній раз, коли відпрацювала його копія?",[20,206,208],{"id":207},"point-in-time-recovery-чи-копія-яку-тримаєте-ви","Point-in-time recovery чи копія, яку тримаєте ви?",[10,210,211],{},"Запитайте себе, від якого лиха ви страхуєтеся, бо ці двоє відповідають на різні\nлиха.",[55,213,214,226],{},[58,215,216],{},[61,217,218,220,223],{},[64,219],{},[64,221,222],{},"Point-in-time recovery",[64,224,225],{},"Копія, яку тримаєте ви",[71,227,228,239,250,259,269,280],{},[61,229,230,233,236],{},[76,231,232],{},"Повертає на названу хвилину",[76,234,235],{},"Так",[76,237,238],{},"На момент, коли відпрацювала копія",[61,240,241,244,247],{},[76,242,243],{},"Сягає далі за вікно",[76,245,246],{},"Ні",[76,248,249],{},"Настільки, наскільки ви їх зберігаєте",[61,251,252,255,257],{},[76,253,254],{},"Переживає втрату акаунта",[76,256,246],{},[76,258,235],{},[61,260,261,264,266],{},[76,262,263],{},"Містить файли зі Storage",[76,265,246],{},[76,267,268],{},"Лише якщо їй сказали їх узяти",[61,270,271,274,277],{},[76,272,273],{},"Де живе",[76,275,276],{},"Усередині вашого проєкту",[76,278,279],{},"Там, де ви її покладете",[61,281,282,285,288],{},[76,283,284],{},"Скільки коштує",[76,286,287],{},"Від $100 на місяць, плюс обчислення",[76,289,290],{},"Руками безкоштовно, або підписка",[10,292,293],{},"Більшості застосунків зі справжніми клієнтами потрібні обидва, і свідомо\nвирішувати варто саме про порядок. Копія, яку тримаєте ви, переживає все, зокрема\nй акаунт, тож саме її налаштовують першою. Доповнення купують тоді, коли\nпорахували, що втрачений ранок замовлень коштує дорожче за нього.",[20,295,297],{"id":296},"що-зробити-цього-тижня","Що зробити цього тижня",[299,300,301],"key-takeaways",{},[302,303,304,308,311,314,317],"ul",{},[305,306,307],"li",{},"Зʼясуйте, чи доповнення вже ввімкнене, у розділі Database, а далі Backups у вашій панелі Supabase. Цілком можливо платити за нього й не знати про це.",[305,309,310],{},"Запишіть, скільки тиха помилка могла б пролежати у вашому застосунку непоміченою. Якщо це число більше за сім днів, ширше вікно купує вам менше, ніж здається.",[305,312,313],{},"Влаштуйте копію бази, яка живе поза вашим акаунтом Supabase, у будь-який спосіб. Point-in-time recovery цієї роботи не робить і не намагається.",[305,315,316],{},"Копіюйте файли зі Storage окремо, бо жодне відновлення бази на жодному плані їх не містить.",[305,318,319],{},"Відновіть щось один раз у тимчасовий проєкт, щоб перше читання однієї з цих копій не випало посеред інциденту.",[20,321,323],{"id":322},"де-тут-місце-reeve-care","Де тут місце Reeve Care",[10,325,326],{},"Care це копія, яку тримаєте ви, налаштована за вас, із відновленням, яке ви\nнатискаєте, а не збираєте.",[131,328],{"alt":329,"caption":330,"src":331},"Панель Reeve Care із двома рядами. У першому база даних і зображення виходять із пунктирного контуру акаунта збереженим файлом, який замикають, перечитують через лупу й позначають галочкою. У другому спершу з акаунта виходить копія поточного стану, позначена одиницею, а потім обрана копія повертається всередину з картки з кнопкою, позначена двійкою.","Копії стоять поза акаунтом, з якого вони прийшли. Повернення однієї починається зі створення ще однієї.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcare-copy-out-and-button-back-1600x560.png",[302,333,334,340,346,352,358],{},[305,335,336,339],{},[153,337,338],{},"Копії йдуть за розкладом, який вам не треба памʼятати",", кожні шість годин на вищих планах, а невдалий запуск надсилає вам лист замість мовчання.",[305,341,342,345],{},[153,343,344],{},"Кожна копія живе поза вашим акаунтом Supabase."," Зашифрована, на сховищі, яке тримаємо ми, щоб призупинений проєкт чи втрачений вхід не забрали ваші копії з собою.",[305,347,348,351],{},[153,349,350],{},"Кожну копію перечитують, перш ніж вона зарахується."," Дата у вашій панелі це остання копія, яка пройшла цю перевірку, і ніколи не остання спроба.",[305,353,354,357],{},[153,355,356],{},"Відновлення це кнопка",", і перед стартом воно робить знімок поточного стану, тож навіть у відновлення є власне скасування.",[305,359,360,363],{},[153,361,362],{},"Файли, які завантажили ваші користувачі, теж копіюються",", щойно ви підключите свої бакети Storage. Це другий ключ, який просять окремо, бо ключ, що його Supabase видає для Storage, уміє не лише читати, а й писати, і ми радше спитаємо, ніж складемо його в одне з тим, який писати не вміє.",[10,365,366,367,371],{},"Care і доповнення доповнюють одне одного, і саме так вони й оцінені. Care\nпочинається з $49 на місяць за один застосунок, проти $100 за доповнення, і\nчимало застосунків мали б мати перше, перш ніж думати про друге. Наші цифри це\nпрайсові ціни, а ",[37,368,370],{"href":369},"\u002Fpricing","сторінка цін"," іноді буває нижчою за цифру тут і\nніколи вищою. Кожна цифра Supabase на цій сторінці процитована з їхніх власних\nсторінок, без переведення й без оцінок.",[10,373,374,375,108],{},"Як копію знімають, перевіряють і повертають, крок за кроком намальовано на\n",[37,376,378],{"href":377},"\u002Fsupabase-backups","сторінці про резервні копії Supabase",[10,380,381,382,386],{},"Перш ніж закрити цю вкладку, порахуйте число, навколо якого крутиться все це\nрішення: скільки помилка могла б пролежати у вашому застосунку, доки хтось її\nпомітить. Менше за сім днів, і доповнення купує вам справжню точність того дня,\nколи вона знадобиться. Більше, і ширше вікно не є правильним місцем для грошей,\nбо далі назад сягає власна копія. ",[37,383,385],{"href":384},"\u002Fchecklist","Десятихвилинний список безпеки","\nохоплює резервні копії поряд з усім іншим, що варто перевірити в запущеному\nзастосунку.",{"title":388,"searchDepth":389,"depth":389,"links":390},"",3,[391,393,394,395,396,397,398,399,400],{"id":22,"depth":392,"text":23},2,{"id":46,"depth":392,"text":47},{"id":114,"depth":392,"text":115},{"id":145,"depth":392,"text":146},{"id":168,"depth":392,"text":169},{"id":186,"depth":392,"text":187},{"id":207,"depth":392,"text":208},{"id":296,"depth":392,"text":297},{"id":322,"depth":392,"text":323},"Backups","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcover-1200x630.png","База даних поряд із лінією часу, де позначка стоїть на одній точці всередині записаного відрізка.","Point-in-time recovery у Supabase відмотує базу на будь-яку секунду за останній тиждень. Коштує $100 на місяць понад Pro і покриває лише базу даних.",false,"md",[408,410,413,416,419],{"q":47,"a":409},"Supabase бере $100 на місяць за вікно відновлення в сім днів, понад ваш план Pro. Є другий кошт, який велика цифра лишає осторонь: доповнення вимагає щонайменше обчислювального інстанса Small, а це близько $15 на місяць, тоді як проєкт на Pro за замовчуванням працює на меншому інстансі Micro. Прочитайте обидві цифри на їхній сторінці цін того дня, коли вирішуватимете, бо цифри належать їм і можуть змінитися.",{"q":411,"a":412},"Чи входить point-in-time recovery у план Supabase Pro?","Ні. План Pro включає щоденні копії, які сягають семи днів назад, а point-in-time recovery це платне доповнення понад них. Supabase пропонує його на планах Pro, Team та Enterprise. На безкоштовному плані автоматичних копій немає взагалі, тож там немає до чого це додавати.",{"q":414,"a":415},"Чи може сторонній інструмент резервного копіювання дати мені point-in-time recovery?","Ні, і інструмент, який натякає на протилежне, описує щось інше. Point-in-time recovery відтворює write-ahead log, файл на диску, де працює ваша база, тому прочитати його здатна лише платформа, яка цей диск тримає. Кожен зовнішній інструмент підключається так само, як ваш застосунок, і питає в бази її вміст, а на виході має переносну копію одного моменту. Ця копія справді корисна, і вона є іншим предметом.",{"q":417,"a":418},"Чи копіює point-in-time recovery мої файли Supabase Storage?","Ні. Supabase прямо пише, що резервні копії бази даних не містять обʼєктів, які ви зберігаєте через Storage API, а point-in-time recovery є функцією бази. Кожен аватар, PDF і зображення, які завантажили ваші користувачі, живуть в окремому сервісі, і база, відмотана на вівторок, лишає ці файли рівно такими, якими вони є сьогодні. Копіювати їх це окрема робота, хоч би який шлях ви обрали.",{"q":420,"a":421},"Наскільки далеко назад сягає point-in-time recovery у Supabase?","Рівно настільки, наскільки сягає вікно, за яке ви платите, і ні на день далі. Supabase продає зберігання трьома розмірами: сім днів, чотирнадцять днів і двадцять вісім днів, за $0.137, $0.274 і $0.55 на годину відповідно. Вікно рухається разом із сьогоднішнім днем, тож кожна прожита година виштовхує найстарішу годину з іншого кінця. Помилка пʼятитижневої давнини лежить поза всіма трьома.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",[424,425,426,427,428,429,430],"point in time recovery supabase","supabase pitr","ціна pitr supabase","відновлення на момент часу supabase","supabase pitr чи щоденні копії","supabase архівування wal","чи потрібен мені pitr supabase",{},true,"Скільки коштує point-in-time recovery у Supabase","\u002Fblog\u002Fsupabase-point-in-time-recovery","2026-09-13",{"title":5,"description":404},"blog\u002Fsupabase-point-in-time-recovery",[439,440,441,442],"Point-in-time recovery у Supabase повертає базу даних на момент, який ви називаєте, а не на нічну копію. Це платне доповнення, доступне від плану Pro і вище.","Воно коштує $100 на місяць за вікно в сім днів, а вмикання ще й переводить проєкт на більший обчислювальний інстанс, який оплачується окремо.","Жоден зовнішній інструмент резервного копіювання не дасть того самого. Point-in-time recovery спирається на журнал запису самої бази, а прочитати його може лише платформа, якій належить диск.","Воно покриває базу даних. Ваші файли зі Storage лишаються поза ним, і помилка, яку ви помітили після того, як вікно проїхало, теж лишається поза ним.","RmGjJkOPkN39RvDTxBTYHAxJpRT2ykMZmncP2wtiVXU",[445,452,458,464,470,476,482,488,494,500,506,512,518,524,530,536,541,547,553,559,565,571,577,583,589,595,601,607,613,614,620,626,632,638,644,650,656,662,668,674,680,686,692,698,704,710,716,722,728,734,740,746,751,757,762,768,773,779,784,789],{"path":446,"title":447,"description":448,"published":449,"category":450,"image":451,"draft":405},"\u002Fblog\u002Fbase44-security-scan","Сканування безпеки Base44: те, що бачить лише воно","Сканування безпеки Base44 перевіряє сім видів проблем зсередини. Ось половина, яку читає тільки воно, і половина, на яку воно ніколи не дивиться.","2026-10-10","Основи безпеки","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":453,"title":454,"description":455,"published":456,"category":450,"image":457,"draft":405},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Ваш API-ключ витік. Порядок дій","API-ключ витік, і ви не знаєте, що робити першим. Не кожен ключ у вашому фронтенді є витоком, а порядок важить більше за швидкість.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":459,"title":460,"description":461,"published":462,"category":450,"image":463,"draft":405},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" без вимкнення RLS","\"Infinite recursion detected in policy for relation\" означає, що ваша policy запитала таблицю, яку вона захищає. Ось як розірвати коло.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":465,"title":466,"description":467,"published":468,"category":450,"image":469,"draft":405},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" у Supabase, і хибне виправлення","\"No API key found in request\" означає, що запит дійшов до Supabase без ключа. Більшість відповідей натомість вказують на правила вашої бази.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":471,"title":472,"description":473,"published":474,"category":450,"image":475,"draft":405},"\u002Fblog\u002Fis-base44-safe","Чи безпечний Base44? Дані 5 442 застосунків","Чи безпечний Base44? Ми прогнали дев’ять перевірок на 5 442 робочих застосунках Base44. Майже всі отримали B з причин, яких власник ніколи не обирав.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":477,"title":478,"description":479,"published":480,"category":450,"image":481,"draft":405},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","Сховати ключ API: перенесіть його в Supabase Edge Function","Сховати ключ API означає прибрати його з браузера, а Supabase Edge Function це найменше місце, куди його покласти. Два кроки поруч важать більше.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":483,"title":484,"description":485,"published":486,"category":450,"image":487,"draft":405},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Чи відкритий ваш файл .env? Дванадцять шляхів для перевірки","Чи відкритий ваш файл .env на вашому власному вебсервері? Дванадцять адрес скажуть це за хвилину, а влучання означає, що все в ньому вже публічне.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":489,"title":490,"description":491,"published":492,"category":450,"image":493,"draft":405},"\u002Fblog\u002Fis-v0-safe","Безпека v0: усі 1 790 просканованих застосунків v0 отримали A","Безпека v0 на 1 790 живих застосунках v0: усі отримали A. Лише 17 згадували базу даних, і саме це здебільшого вимірює оцінка A.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":495,"title":496,"description":497,"published":498,"category":450,"image":499,"draft":405},"\u002Fblog\u002Fis-bolt-safe","Чи безпечний Bolt? Що показали 1 123 застосунки Bolt","Чи безпечний Bolt? Ми прогнали 1 123 живі застосунки Bolt через дев’ять перевірок. Хостинг був чистим. Знахідки: ключі й відкриті таблиці в самих застосунках.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":501,"title":502,"description":503,"published":504,"category":450,"image":505,"draft":405},"\u002Fblog\u002Fis-supabase-down-or-your-app","Supabase не працює чи проблема у вашому застосунку? Як розрізнити","Supabase не працює чи зламався ваш застосунок? Пауза, повна база й ваша власна помилка виглядають однаково. Чотири перевірки їх розрізняють.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":507,"title":508,"description":509,"published":510,"category":450,"image":511,"draft":405},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Чи шифрує Supabase мої дані? Так. Ось від чого це захищає","Чи шифрує Supabase дані? Так: AES-256 у стані спокою, TLS під час передавання, SOC 2 та ISO 27001. Що покриває кожне і який витік не зупиняє жодне.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":513,"title":514,"description":515,"published":516,"category":450,"image":517,"draft":405},"\u002Fblog\u002Fsupabase-free-plan-limits","Ліміти безкоштовного тарифу Supabase і що стається на кожному","Ліміти безкоштовного тарифу Supabase: 500 МБ бази, 5 ГБ egress і жодних резервних копій. Що стається на кожній межі і що змінює Pro за $25.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":519,"title":520,"description":521,"published":522,"category":401,"image":523,"draft":405},"\u002Fblog\u002Ftest-your-supabase-backup","Перевірте резервну копію Supabase до того, як вона знадобиться","Як перевірити резервну копію Supabase: відновити в тестовий проєкт, порахувати рядки, увійти й знайти рядок, якого бракує обрізаному файлу.","2026-09-28","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":525,"title":526,"description":527,"published":528,"category":401,"image":529,"draft":405},"\u002Fblog\u002Fsupabase-backup-github-action","Безкоштовна резервна копія Supabase через GitHub Action і підступ","Резервна копія Supabase через GitHub Action безкоштовна й годиться багатьом застосункам. Робочий процес, потрібний рядок підключення та egress.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":531,"title":532,"description":533,"published":534,"category":401,"image":535,"draft":405},"\u002Fblog\u002Fdownload-your-supabase-backup","Чому ви не можете завантажити резервну копію Supabase","Завантажити резервну копію Supabase на сучасному проєкті не вийде: щоденна копія там фізична. Як це перевірити і як тримати власну копію.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":537,"title":538,"description":539,"published":534,"category":450,"image":540,"draft":405},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": бракує GRANT","З 30 жовтня нова таблиця в Supabase відповідає \"permission denied for table\", доки ви не дасте доступ. Лист показує лише половину виправлення.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":542,"title":543,"description":544,"published":545,"category":450,"image":546,"draft":405},"\u002Fblog\u002Fopen-api-endpoint-exposed","Чи є відкритий API-ендпоінт проблемою безпеки? Читайте JSON","Ваше сканування позначило відкритий API-ендпоінт. Чи це важливо, залежить від того, що повернулося, і більшість знайдених належали платформі.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":548,"title":549,"description":550,"published":551,"category":450,"image":552,"draft":405},"\u002Fblog\u002Flovable-security-scan","Сканування безпеки Lovable: чого воно не доведе","Сканування безпеки Lovable: що перевіряють Quick scan і Deep scan, коли запускається кожне, і єдине, чого не доведе жодне сканування зсередини.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":554,"title":555,"description":556,"published":557,"category":401,"image":558,"draft":405},"\u002Fblog\u002Fsupabase-backup-auth-users","Чому у вашому дампі Supabase немає користувачів","Запустіть supabase db dump окремо і отримаєте форму вашої бази та жодного її рядка, без схеми auth, у якій живуть ваші користувачі.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":560,"title":561,"description":562,"published":563,"category":450,"image":564,"draft":405},"\u002Fblog\u002Fdomain-and-certificate-expiry","Домен закінчився, сайт лежить: що буде далі","Ваш домен закінчився і сайт лежить. Ось який годинник уже пішов, чому прострочений сертифікат це менша з двох бід, і як перевірити обидва.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":566,"title":567,"description":568,"published":569,"category":450,"image":570,"draft":405},"\u002Fblog\u002Fis-lovable-safe","Чи безпечний Lovable? Що показали 18 554 застосунки Lovable","Чи безпечний Lovable? Ми прогнали 18 554 живі застосунки Lovable через дев’ять перевірок. Платформа виявилася найчистішою з п’яти. Знахідки були в застосунках.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":572,"title":573,"description":574,"published":575,"category":450,"image":576,"draft":405},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Чек-лист безпеки для vibe coding, у девʼяти перевірках","Чек-лист безпеки для vibe coding із девʼяти пунктів, кожен з яких будь-хто може перевірити у вашому живому застосунку ззовні, і кожен має тест на один рядок.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":578,"title":579,"description":580,"published":581,"category":450,"image":582,"draft":405},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Секретний ключ Stripe у фронтенді може рухати гроші","Секретний ключ Stripe, відкритий у вашому фронтенді, може повертати кошти, списувати й читати кожну картку клієнта. А ключ pk_live_ там і має бути.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":584,"title":585,"description":586,"published":587,"category":450,"image":588,"draft":405},"\u002Fblog\u002Fvite-and-next-public-env-vars","Змінні оточення Vite відкриті: префікс означає опублікувати це","Змінні оточення Vite відкриті у вашому застосунку, бо так просив префікс. VITE_ і NEXT_PUBLIC_ означають опублікувати це, а ШІ, який їх додав, не знав ціни.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":590,"title":591,"description":592,"published":593,"category":450,"image":594,"draft":405},"\u002Fblog\u002Fbase44-source-maps","Безпека Base44: що позначає скан і що з цього виправляти вам","Безпека Base44 на 5 438 просканованих застосунках: три знахідки майже на кожному належать платформі, source map є бейджем Base44, а ваша частина коротка.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":596,"title":597,"description":598,"published":599,"category":450,"image":600,"draft":405},"\u002Fblog\u002Fis-cursor-ai-safe","Чи безпечний Cursor AI? Редактор, код і опублікований застосунок","Чи безпечний Cursor AI? Три запитання в одному пошуку: що Cursor зберігає, у чому помиляється його код і чи відкритий застосунок, який ви опублікували.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":602,"title":603,"description":604,"published":605,"category":450,"image":606,"draft":405},"\u002Fblog\u002Fis-replit-safe","Чи безпечний Replit? Що ми знайшли в 3 042 живих застосунках Replit","Чи безпечний Replit? Ми прогнали 3 042 живі застосунки Replit через дев’ять зовнішніх перевірок. Знахідки були в опублікованому застосунку, а не в хостингу.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":608,"title":609,"description":610,"published":611,"category":401,"image":612,"draft":405},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: у копії бази даних немає жодного файлу","Supabase storage backup це окрема робота. Копії бази даних зберігають список ваших файлів і жодного з них, тож після відновлення кожне завантаження зламане.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":434,"title":5,"description":404,"published":435,"category":401,"image":422,"draft":405},{"path":615,"title":616,"description":617,"published":618,"category":401,"image":619,"draft":405},"\u002Fblog\u002Fsupabase-project-paused-recover","Проєкт Supabase на паузі? Ваші дані нікуди не зникли","Supabase поставив ваш проєкт на паузу після тижня без активності. Нічого не видалено, кнопка Restore стоїть поруч із назвою, і у вас є рік, щоб натиснути.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":621,"title":622,"description":623,"published":624,"category":450,"image":625,"draft":405},"\u002Fblog\u002Fsafest-ai-app-builder","Який білдер застосунків з ШІ найбезпечніший? 30 998 тестів","Який білдер застосунків з ШІ найбезпечніший? Ми просканували 30 998 живих застосунків з Lovable, Base44, Replit, v0 і Bolt. Оцінку вирішує не білдер.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":627,"title":628,"description":629,"published":630,"category":450,"image":631,"draft":405},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Увімкніть Row Level Security на кожній таблиці Supabase і перевірте","Row Level Security у Supabase без політики закриває таблицю повністю. Політика без увімкненого перемикача не робить нічого. Ось SQL, і ось перевірка.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":633,"title":634,"description":635,"published":636,"category":450,"image":637,"draft":405},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": чого не бачить попередження","Supabase позначає \"RLS disabled in public\" як помилку. Про політику читання, яка лишає вашу таблицю так само відкритою, він не каже нічого.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":639,"title":640,"description":641,"published":642,"category":450,"image":643,"draft":405},"\u002Fblog\u002Frotate-supabase-service-role-key","Як замінити злитий ключ service_role у Supabase","Supabase каже спершу закрити витік. Інші посібники кажуть міняти негайно. Що правильно, залежить від того, куди саме потрапив ваш ключ service_role.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":645,"title":646,"description":647,"published":648,"category":450,"image":649,"draft":405},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Сканери безпеки для vibe coding у порівнянні, наш теж","Найкращий сканер безпеки для vibe coding залежить від трьох питань, на які не відповідає жоден перелік функцій. Десять інструментів і ціни.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":651,"title":652,"description":653,"published":654,"category":450,"image":655,"draft":405},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: п’ять перевірок, які зробите самі","Supabase security checker читає ваш опублікований застосунок, а не налаштування проєкту. Ось п’ять перевірок і як виконати кожну самостійно.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":657,"title":658,"description":659,"published":660,"category":450,"image":661,"draft":405},"\u002Fblog\u002Fvibe-coding-security-scanner","Сканер безпеки для vibe coding: чого не бачить скан URL","Сканер безпеки для vibe coding читає ваш робочий застосунок ззовні. Що це охоплює, чотири речі, яких він не бачить, і як читати результат.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":663,"title":664,"description":665,"published":666,"category":450,"image":667,"draft":405},"\u002Fblog\u002Fmissing-security-headers","Відсутні заголовки безпеки: коли це справді важливо","Відсутні заголовки безпеки трапляються в наших звітах найчастіше. Від чого вони захищають і коли це найменш терміновий рядок вашого звіту.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":669,"title":670,"description":671,"published":672,"category":450,"image":673,"draft":405},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Ваш ключ API OpenAI відкритий у фронтенді. Замініть його.","Ключ API OpenAI, відкритий у фронтенді, не можна прив'язати до домену. Замініть його сьогодні, перенесіть виклик на свій сервер і обмежте витрати.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":675,"title":676,"description":677,"published":678,"category":450,"image":679,"draft":405},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Ключ API у фронтенді: що насправді віддають 30 998 застосунків","Ключ API, відкритий у вашому фронтенді, зазвичай є ключем Google Maps. Ми просканували 30 998 vibe-coded застосунків і порахували, що витікає насправді.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":681,"title":682,"description":683,"published":684,"category":401,"image":685,"draft":405},"\u002Fblog\u002Fsupabase-backup-tools-compared","Інструменти резервного копіювання Supabase, і наш серед них","Чотири види інструментів резервного копіювання Supabase, що копіює кожен і коли безкоштовна GitHub Action виграє в будь-якої оплати, нашої теж.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":687,"title":688,"description":689,"published":690,"category":450,"image":691,"draft":405},"\u002Fblog\u002Freplit-secrets-explained","Як користуватися секретами в Replit і що все одно публікується","Як користуватися секретами в Replit: додати, прочитати і усунути дві причини undefined. А ще ключі, які цей інструмент не здатен зберегти в таємниці.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":693,"title":694,"description":695,"published":696,"category":401,"image":697,"draft":405},"\u002Fblog\u002Fback-up-supabase-free-tier","Резервні копії на безкоштовному тарифі Supabase без терміналу","На безкоштовному тарифі Supabase резервних копій немає: копію робите ви. Як зробити її з панелі та що втрачає шлях через CSV.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":699,"title":700,"description":701,"published":702,"category":450,"image":703,"draft":405},"\u002Fblog\u002Fis-supabase-secure","Чи безпечний Supabase? Так. Ваш проєкт це інше питання","Чи безпечний Supabase? Платформа проходить аудити, шифрує дані й тримає пентести. Їхня документація каже, де це закінчується і починаються ваші налаштування.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":705,"title":706,"description":707,"published":708,"category":450,"image":709,"draft":405},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Де знайти API-ключі Supabase: anon, service_role і URL","URL проєкту, ключ anon і ключ service_role лежать на одній сторінці панелі. Ось де вона, і яке з чотирьох значень має бути у вашому застосунку.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":711,"title":712,"description":713,"published":714,"category":450,"image":715,"draft":405},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy в Supabase. Що далі?","\"New row violates row-level security policy\" означає, що Supabase відмовив у записі. Швидке виправлення знову відкриває таблицю для всіх.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":717,"title":718,"description":719,"published":720,"category":450,"image":721,"draft":405},"\u002Fblog\u002Fcors-wildcard-security-risk","Чи є вайлдкард CORS ризиком для безпеки? Майже ніколи.","Чи є вайлдкард CORS ризиком для безпеки? Зазвичай це типове налаштування вашого білдера, і воно не видає нічого, що ваш сервер і так віддавав кожному.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":723,"title":724,"description":725,"published":726,"category":401,"image":727,"draft":405},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Branching у Supabase це не бекап. Він іде тільки вперед.","Чому branching у Supabase це не бекап: гілка стартує без ваших даних, а мердж переносить саму лише схему. Для чого він потрібен і що брати замість нього.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":729,"title":730,"description":731,"published":732,"category":401,"image":733,"draft":405},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Як відновити резервну копію Supabase, і що ламається потім","Як відновити резервну копію Supabase з панелі або з файлу дампа, що саме замінює відновлення і чому ваш застосунок може лишитися зламаним після нього.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":735,"title":736,"description":737,"published":738,"category":450,"image":739,"draft":405},"\u002Fblog\u002Fsupabase-storage-bucket-public","Ваш бакет Supabase Storage публічний. Чи це проблема?","Публічний бакет Supabase Storage означає, що той, хто має URL файлу, може його відкрити. Він не означає, що хтось може переглянути список вмісту.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":741,"title":742,"description":743,"published":744,"category":450,"image":745,"draft":405},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Чи є проблемою ключ API Google у вашому браузері?","Ключ API Google у відкритому коді сторінки наш сканер знаходить найчастіше, і зазвичай усе гаразд. Вирішує це одне безкоштовне налаштування.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":124,"title":747,"description":748,"published":749,"category":401,"image":750,"draft":405},"ШІ-агент видалив мої дані в Supabase. Що можна відновити?","ШІ-агент видалив дані з вашої бази. Те, що ви зможете відновити, вирішилося раніше, а наступні хвилини вирішують, скільки з цього вціліє.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":752,"title":753,"description":754,"published":755,"category":450,"image":756,"draft":405},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Чи може будь-хто прочитати вашу базу Supabase? 3 680 застосунків","Чи може будь-хто прочитати вашу базу даних Supabase без входу? Ми просканували 30 998 живих застосунків, зроблених ШІ-білдерами, і виміряли, як часто так.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":758,"title":759,"description":760,"published":755,"category":450,"image":761,"draft":405},"\u002Fblog\u002Fsource-maps-exposed-in-production","Відкриті source maps: ваш застосунок публікує свій вихідний код","Відкрита source map дає будь-кому прочитати оригінальний код вашого застосунку, разом із коментарями. Перевірка за 30 секунд, і що важить насправді.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":763,"title":764,"description":765,"published":766,"category":450,"image":767,"draft":405},"\u002Fblog\u002Fsupabase-new-api-keys","Нові API-ключі Supabase: який із них безпечний у застосунку?","Supabase замінив anon і service_role публічними та секретними ключами. Який із них має бути у вашому застосунку, а який не має бути ніколи?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":106,"title":769,"description":770,"published":771,"category":401,"image":772,"draft":405},"Чи робить Supabase резервні копії моєї бази? Залежить від тарифу.","Чи робить Supabase резервні копії вашої бази даних? На платних тарифах щодня, на безкоштовному жодної. Як дізнатися, що у вас насправді є.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":774,"title":775,"description":776,"published":777,"category":450,"image":778,"draft":405},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Supabase Row Level Security увімкнено. Таблиця досі публічна.","Увімкнути Supabase Row Level Security не означає захистити таблицю. Захищають політики, а та, що полагодила застосунок, часто впускає всіх.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":780,"title":781,"description":782,"published":777,"category":401,"image":783,"draft":405},"\u002Fblog\u002Fversion-history-is-not-a-backup","Історія версій не є резервною копією. Вона не поверне таблицю.","Lovable і Bolt ведуть історію версій вашого коду. Ваша база даних працює як окремий сервіс, тож відкат назад не поверне ваші дані.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":181,"title":785,"description":786,"published":787,"category":401,"image":788,"draft":405},"Три способи зробити резервну копію бази Supabase, і чого бракує","Панель, pg_dump і керований сервіс. Що насправді зберігає кожен спосіб, що тихо лишає осторонь і який із них переживе втрату акаунта.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":790,"title":791,"description":792,"published":787,"category":450,"image":793,"draft":405},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Які API-ключі безпечні у браузері, а які ні","Ваш ключ anon у Supabase створений, щоб бути публічним. Ключ service_role для цього не створений, і він ігнорує всі правила, які ви задали. Як їх розрізнити.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618975602]