[{"data":1,"prerenderedAt":592},["ShallowReactive",2],{"blog-uk-back-up-supabase-free-tier":3,"blog-index-uk":350},{"id":4,"title":5,"body":6,"category":308,"cover":309,"coverAlt":310,"description":311,"draft":312,"extension":313,"faq":314,"image":330,"keywords":331,"meta":338,"navigation":339,"ogTitle":340,"path":341,"published":342,"seo":343,"stem":344,"tldr":345,"updated":342,"__hash__":349},"blog_uk\u002Fblog\u002Fback-up-supabase-free-tier.md","Резервні копії на безкоштовному тарифі Supabase без терміналу",{"type":7,"value":8,"toc":296},"minimark",[9,13,21,24,29,32,41,45,48,51,54,58,61,125,131,139,142,149,153,159,175,192,197,205,209,216,219,222,226,229,234,252,264,268,288],[10,11,12],"p",{},"Ваш проєкт на безкоштовному тарифі Supabase, і ви відкрили Database, а потім\nBackups, шукаючи список датованих копій для відновлення. Там нічого немає.\nЖодних дат, жодної кнопки відновлення, лише повідомлення про перехід на вищий\nтариф. Сторінка не зламана. Резервних копій на безкоштовному тарифі Supabase\nнемає в списку тому, що цей тариф їх не знімає.",[10,14,15,16,20],{},"Ось де більшість відповідей на це збиваються. Вам дають команду ",[17,18,19],"code",{},"pg_dump",", а це\nправильний інструмент і водночас інструкція, якої ви не можете виконати: вона\nпередбачає термінал, встановлений Postgres і рядок підключення, а ви зібрали\nцей застосунок у Lovable чи Bolt саме для того, щоб ніколи не потребувати\nжодного з трьох.",[10,22,23],{},"Забрати свої дані можна з панелі. Один шлях займає близько десяти хвилин і дає\nвам ваші рядки. Другий довший і дає вам базу даних.",[25,26,28],"h2",{"id":27},"чи-має-безкоштовний-тариф-supabase-резервні-копії","Чи має безкоштовний тариф Supabase резервні копії?",[10,30,31],{},"Ні. Безкоштовний тариф не знімає жодної, і немає налаштування, яке б їх\nувімкнуло. Автоматичні щоденні копії починаються на тарифі Pro, а відновлення\nна момент у часі це платне доповнення понад те.",[10,33,34,35,40],{},"Тариф, на якому ви перебуваєте, це той факт, від якого залежить усе інше тут, і\n",[36,37,39],"a",{"href":38},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","перевірити його можна за дві хвилини",".\nЯкщо ви на безкоштовному, єдина копія ваших даних це та, яку зробили ви. Решта\nцієї статті про те, як зробити її сьогодні.",[25,42,44],{"id":43},"найшвидша-копія-експортуйте-таблиці-в-csv","Найшвидша копія: експортуйте таблиці в CSV",[10,46,47],{},"Відкрийте Table Editor, виберіть таблицю й скористайтеся кнопкою експорту над\nсіткою. Вона пропонує завантажити кожен рядок у файл CSV, і цей файл потрапляє\nдо вашої теки завантажень, як і будь-що інше.",[10,49,50],{},"Потім зробіть те саме для наступної таблиці, і для тієї, що за нею. Експорт\nпрацює з однією таблицею за раз, і саме про це зазвичай не згадують: вам\nпотрібно знати, які таблиці має ваш застосунок. Список ліворуч у Table Editor і\nє тим списком, і його варто дочитати до кінця, перш ніж починати.",[10,52,53],{},"Десять хвилин кліків дадуть вам теку файлів CSV з кожним рядком, який створили\nваші користувачі. Як спосіб не втратити свої дані сьогодні по обіді, це десять\nдобре витрачених хвилин. Те, що ви маєте наприкінці, це копія рядків, і тільки\nрядків.",[25,55,57],{"id":56},"що-файли-csv-лишають-позаду","Що файли CSV лишають позаду",[10,59,60],{},"П’ять речей, і жодна з них не є рядком. CSV містить вміст таблиці й нічого про\nте, як ту таблицю було збудовано, тож у вас лишається перелік того, що стояло в\nкімнаті, без жодної полиці.",[62,63,64,77],"table",{},[65,66,67],"thead",{},[68,69,70,74],"tr",{},[71,72,73],"th",{},"Що лишається позаду",[71,75,76],{},"Чому це важить, коли ви повертаєте дані назад",[78,79,80,89,97,105,117],"tbody",{},[68,81,82,86],{},[83,84,85],"td",{},"Зв’язки",[83,87,88],{},"CSV не має гадки, яку таблицю треба завантажити першою, тож імпорт або падає, або лишає рядки, що вказують на зникле",[68,90,91,94],{},[83,92,93],{},"Типи колонок",[83,95,96],{},"Усе приходить текстом, доки щось не скаже новій базі інакше, а порожня комірка й справжній null стають тим самим",[68,98,99,102],{},[83,100,101],{},"Правила Row Level Security",[83,103,104],{},"Правил, які вирішують, хто що може читати, у файлі немає, і таблиця, відтворена без них, або закрита для всіх, або відкрита для всіх",[68,106,107,110],{},[83,108,109],{},"Ваші облікові записи для входу",[83,111,112,113,116],{},"Вони сидять в окремій схемі ",[17,114,115],{},"auth",", і саме тому їх немає в Table Editor поряд із вашими таблицями",[68,118,119,122],{},[83,120,121],{},"Усе, що завантажили ваші користувачі",[83,123,124],{},"Supabase Storage живе поза базою даних, тож жоден експорт жодної таблиці ніколи не містив файлу",[126,127],"diagram",{"alt":128,"caption":129,"src":130},"Ліворуч три таблиці, з’єднані лініями, з людиною й замком, прикріпленими до них. Праворуч той самий вміст як три окремі аркуші з галочкою, а під розділовою лінією ці з’єднання, замок і людина намальовані блідо й перекреслені.","Рядки переходять на той бік. Лінії між ними, правила на них і люди, які входять, ні.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fwhat-csv-leaves-behind-1600x780.png",[10,132,133,134,138],{},"Останній рядок і є тим, що людей дивує. Ваша база даних завжди зберігала лише\nшлях до кожного завантаженого файлу, тож тека з CSV, залита в новий проєкт, дає\nвам таблицю, повну посилань на\n",[36,135,137],{"href":136},"\u002Fblog\u002Fsupabase-storage-bucket-public","файли, яких там немає",".",[10,140,141],{},"Це не робить шлях через CSV нікчемним. Якщо ви боїтеся невдалого видалення в\nодній таблиці, CSV саме тієї таблиці це те, що вам потрібно, а повернути кілька\nсотень рядків через той самий редактор це робота, яку ви зробите самі.\nВідбудувати цілий проєкт він якраз не може.",[10,143,144,145,138],{},"Раз ви вже дивитеся на свої таблиці: наше безкоштовне сканування читає ваш живий\nсайт іззовні й каже, які з них відповідають незнайомцю. Воно триває близько 20\nсекунд і не потребує акаунта: ",[36,146,148],{"href":147},"\u002Fsecurity-scanner","сканувати застосунок",[25,150,152],{"id":151},"справжня-резервна-копія-без-відкривання-термінала","Справжня резервна копія без відкривання термінала",[10,154,155,156,158],{},"Візьміть настільний клієнт бази даних. pgAdmin, TablePlus і DBeaver усі\nпідключаються до проєкту Supabase рядком підключення, і в усіх трьох команда\nрезервного копіювання чи дампу лежить у меню. На виході повний файл ",[17,157,19],{},", і\nви не набираєте для цього жодної команди.",[160,161,162,166,169,172],"ol",{},[163,164,165],"li",{},"У панелі Supabase відкрийте Connect і скопіюйте рядок підключення. Якщо\nпрямий відмовляється підключатися, візьміть рядок session pooler, той самий,\nяким користуються власні інструкції з відновлення від Supabase.",[163,167,168],{},"Вставте його в клієнт як нове підключення разом із паролем вашої бази даних.",[163,170,171],{},"Знайдіть команду резервного копіювання. У pgAdmin ви клацаєте базу правою\nкнопкою й вибираєте Backup; у TablePlus і DBeaver вона під меню експорту або\nдампу.",[163,173,174],{},"Збережіть файл десь, що не є лише вашим ноутбуком.",[176,177,179],"callout",{"type":178},"warn",[10,180,181,185,186,188,189,191],{},[182,183,184],"strong",{},"Помилка, на яку ви найімовірніше натрапите."," Ці інструменти нічого не\nзберігають самі. Вони викликають стандартну програму Postgres ",[17,187,19],{},",\nвстановлену на вашій машині, а вона відмовляється працювати проти сервера,\nновішого за неї саму, скаржачись, що перериває роботу через розбіжність версій\nсервера. Виправлення це вказати клієнту новіший ",[17,190,19],{}," (у pgAdmin це шлях до\nбінарників у налаштуваннях) або встановити свіжіший Postgres локально. Це прикра\nпівгодина, і робите ви її один раз.",[126,193],{"alt":194,"caption":195,"src":196},"Вікно термінала й вікно настільної програми, чиї два шляхи сходяться в одній точці й продовжуються однією стрілкою до єдиного збереженого файлу.","Обидва шляхи просять у Postgres те саме й дають той самий файл. Один із них вимагає, щоб ви це набрали.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fone-file-two-ways-1600x560.png",[10,198,199,200,204],{},"Той файл забирає і кімнату, і полиці: таблиці, колонки, типи, індекси, функції\nта ваші правила Row Level Security. Зі шляхів, відкритих вам на безкоштовному\nтарифі, це єдиний, який може відбудувати проєкт деінде, в іншому акаунті, того\nдня, коли в цей ви вже не потрапите. Прочитати його назад це окрема робота, і\n",[36,201,203],{"href":202},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","як відновити резервну копію Supabase","\nпроходить те, що відновлення заміняє, і те, що воно лишає зламаним позаду себе.",[25,206,208],{"id":207},"куди-дівати-файл-і-як-часто","Куди дівати файл і як часто",[10,210,211,212,138],{},"Кудись, що не є тим самим ноутбуком і тим самим акаунтом Supabase. Це дві різні\nполомки: ноутбук покриває диск, який помер, акаунт покриває картку, що\nпротермінувалася, поки вас не було, призупинений проєкт, вхід, якого ніхто не\nвідновить. Копія всередині акаунта стоїть за тими самими дверима, що й те, що\nвона мала захищати, і саме це шлях за шляхом порівнює\n",[36,213,215],{"href":214},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","три способи зробити резервну копію бази Supabase",[10,217,218],{},"Щодо частоти, спитайте себе, скільки ви готові набрати вручну заново. Втратити\nдень реєстрацій прикро, і копія щоночі це покриває. Втратити годину замовлень\nозначає повертати людям гроші, а для цього щоніч уже надто повільно.",[10,220,221],{},"Далі завантажте одну зі своїх копій у тимчасовий проєкт Supabase і відкрийте на\nньому свій застосунок. Це єдиний крок тут, який скаже вам, чи файл узагалі\nгодиться, і коштує він близько півгодини.",[25,223,225],{"id":224},"якщо-ви-волієте-не-робити-цього-вручну","Якщо ви волієте не робити цього вручну",[10,227,228],{},"Тоді копію має знімати щось інше й перевіряти її після цього. Саме це робить\nReeve Care.",[126,230],{"alt":231,"caption":232,"src":233},"Панель Reeve Care з двома рядами. У першому копія бази даних виходить за пунктирний контур акаунта Supabase, повторюється за розкладом і проходить під лупою. У другому той самий файл їде назад в акаунт.","Копія залишає ваш акаунт Supabase за розкладом, її перечитують, перш ніж вона зарахується, і того дня, коли вона потрібна, вона йде у зворотний бік.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcare-backup-cycle-1600x520.png",[235,236,237,240,243,246,249],"ul",{},[163,238,239],{},"Це працює за розкладом, кілька разів на день залежно від тарифу, пам’ятає про\nце хтось чи ні.",[163,241,242],{},"Копія зашифрована й лежить поза вашим акаунтом Supabase, тож втрата акаунта не\nзабирає резервні копії з собою.",[163,244,245],{},"Кожну копію перечитують і звіряють із тим, що в неї пішло. Дата, яку показує\nваша панель, це остання копія, що пройшла цю перевірку, а не остання спроба.",[163,247,248],{},"Відновлення це кнопка, і перед стартом знімається зріз поточного стану, тож\nнавіть у відновлення є своє скасування.",[163,250,251],{},"Ваші завантажені файли теж копіюються, щойно ви підключите свої бакети\nStorage.",[10,253,254,255,259,260,138],{},"Того дня, коли перейдете на платний тариф, лишіть увімкненими й власні резервні\nкопії Supabase. Дві копії у двох місцях і є вся ідея. Що входить у кожен тариф,\nдивіться в ",[36,256,258],{"href":257},"\u002F#pricing","таблиці тарифів Care",", а копію, перевірку й відновлення\nкрок за кроком намальовано на\n",[36,261,263],{"href":262},"\u002Fsupabase-backups","сторінці резервних копій Supabase",[25,265,267],{"id":266},"що-зробити-цього-тижня","Що зробити цього тижня",[269,270,271],"key-takeaways",{},[235,272,273,276,279,282,285],{},[163,274,275],{},"Підтвердьте, на якому тарифі ваш проєкт. На безкоштовному для вас нічого не копіюється, і все інше тут випливає з цього факту.",[163,277,278],{},"Експортуйте таблиці в CSV сьогодні, якщо у вас є лише десять хвилин. Половина копії краща за жодну.",[163,280,281],{},"Цього тижня зніміть повний дамп настільним клієнтом і покладіть файл десь, що не є вашим ноутбуком.",[163,283,284],{},"Копіюйте файли Storage окремо. Жодна резервна копія бази даних не містить їх, за жодного шляху.",[163,286,287],{},"Завантажте одну копію в тимчасовий проєкт, щоб перший раз, коли ви читаєте той файл, не був днем, коли він вам потрібен.",[10,289,290,291,295],{},"Зробіть експорт у CSV, перш ніж закрити цю вкладку. Це найменша корисна річ у\nсписку, і вона працює на тому тарифі, який у вас уже є.\n",[36,292,294],{"href":293},"\u002Fchecklist","10-хвилинний чекліст безпеки"," охоплює резервні копії разом із рештою\nтого, що варто перевірити у щойно запущеному застосунку.",{"title":297,"searchDepth":298,"depth":298,"links":299},"",3,[300,302,303,304,305,306,307],{"id":27,"depth":301,"text":28},2,{"id":43,"depth":301,"text":44},{"id":56,"depth":301,"text":57},{"id":151,"depth":301,"text":152},{"id":207,"depth":301,"text":208},{"id":224,"depth":301,"text":225},{"id":266,"depth":301,"text":267},"Backups","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcover-1200x630.png","База даних, витягнута з неї таблиця і невелика стопка збережених файлів у кінці стрілки.","На безкоштовному тарифі Supabase резервних копій немає: копію робите ви. Як зробити її з панелі та що втрачає шлях через CSV.",false,"md",[315,318,321,324,327],{"q":316,"a":317},"Чи можна завантажити резервну копію з панелі Supabase на безкоштовному тарифі?","Ні. Сторінка резервних копій це платна функція, і на безкоштовному тарифі там немає чого завантажувати, бо нічого й не зберігалося. Завантажити можна власні дані: Table Editor експортує будь-яку таблицю у файл CSV, а настільний клієнт бази даних, підключений до вашого проєкту, запише повний дамп. І те, і те ви робите самі, а не отримуєте саме собою.",{"q":319,"a":320},"Чи є експорт у CSV резервною копією?","Наполовину. Файл CSV містить рядки однієї таблиці й нічого про те, як ту таблицю було збудовано, тож відновити з нього можна електронну таблицю, а не базу даних. У ньому немає зв’язків між таблицями, типів колонок, ваших правил Row Level Security, ваших облікових записів для входу й жодного файлу, який завантажили ваші користувачі. Щоб повернути таблицю, яку хтось помилково спорожнив, це саме те, що треба. Щоб відбудувати проєкт, цього замало.",{"q":322,"a":323},"Як зробити резервну копію користувачів auth у Supabase?","Ваші облікові записи для входу живуть в окремій схемі бази даних під назвою auth, і саме тому вони ніколи не з’являються в Table Editor поряд із вашими таблицями й ніколи не потрапляють у CSV з них. Повний дамп цю схему забрати може. Те, як знову змусити ці записи працювати в іншому проєкті, Supabase описує як окрему роботу з власними кроками, а не як щось, що їде разом із вашими таблицями. Прочитайте це до того, як воно знадобиться, а не під час.",{"q":325,"a":326},"Мій проєкт призупинено. Чи можна все одно забрати дані?","Спершу відновіть його. Supabase призупиняє безкоштовні проєкти після періоду низької активності, і призупинений проєкт відповідає на кожен запит помилкою, доки ви не піднімете його з панелі. Призупинення це не видалення. Щойно проєкт запрацює знову, обидва шляхи з цієї статті працюють як звичайно, і зняти копію саме тоді найрозумніше.",{"q":328,"a":329},"Може, просто перейти на Pro?","Це найдешевший спосіб отримати автоматичну щоденну копію, і його варто мати. Він не заміняє власної копії, бо копії, які знімає Supabase, лежать усередині акаунта Supabase. Це рятує того дня, коли ви зіпсували власні дані, і не рятує того дня, коли ви втратили доступ до акаунта. Якщо у вашому застосунку є справжні клієнти, відповідь зазвичай обидва варіанти.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",[332,333,334,335,336,337],"резервні копії безкоштовний тариф supabase","безкоштовна резервна копія supabase","експортувати базу даних supabase","резервна копія supabase без cli","завантажити базу даних supabase","бекап supabase безкоштовно",{},true,"Резервні копії на безкоштовному тарифі Supabase","\u002Fblog\u002Fback-up-supabase-free-tier","2026-08-30",{"title":5,"description":311},"blog\u002Fback-up-supabase-free-tier",[346,347,348],"Резервних копій на безкоштовному тарифі Supabase не існує. Нічого й нікуди не копіюється за розкладом, тож єдина копія ваших даних це та, яку зробили ви.","Панель експортує таблицю в CSV за кілька кліків. Це витягує ваші рядки й лишає структуру позаду: зв’язки, типи, правила, облікові записи, файли.","Щоб копія могла відбудувати проєкт, настільний клієнт бази даних робить повний дамп кількома кліками мишею. Без жодного термінала.","rm-nFYrNDU1NsVtASTQtCqNuQ80B6Xs3eSM1uiiO-8s",[351,357,364,370,376,382,388,394,400,406,412,418,424,430,436,442,448,454,460,466,472,478,484,490,496,497,503,509,515,521,527,532,537,543,549,555,560,566,571,577,582,587],{"path":352,"title":353,"description":354,"published":355,"category":308,"image":356,"draft":312},"\u002Fblog\u002Fsupabase-backup-auth-users","Чому у вашому дампі Supabase немає користувачів","Запустіть supabase db dump окремо і отримаєте форму вашої бази та жодного її рядка, без схеми auth, у якій живуть ваші користувачі.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":358,"title":359,"description":360,"published":361,"category":362,"image":363,"draft":312},"\u002Fblog\u002Fdomain-and-certificate-expiry","Домен закінчився, сайт лежить: що буде далі","Ваш домен закінчився і сайт лежить. Ось який годинник уже пішов, чому прострочений сертифікат це менша з двох бід, і як перевірити обидва.","2026-09-22","Основи безпеки","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":365,"title":366,"description":367,"published":368,"category":362,"image":369,"draft":312},"\u002Fblog\u002Fis-lovable-safe","Чи безпечний Lovable? Що показали 18 554 застосунки Lovable","Чи безпечний Lovable? Ми прогнали 18 554 живі застосунки Lovable через дев’ять перевірок. Платформа виявилася найчистішою з п’яти. Знахідки були в застосунках.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":371,"title":372,"description":373,"published":374,"category":362,"image":375,"draft":312},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Чек-лист безпеки для vibe coding, у девʼяти перевірках","Чек-лист безпеки для vibe coding із девʼяти пунктів, кожен з яких будь-хто може перевірити у вашому живому застосунку ззовні, і кожен має тест на один рядок.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":377,"title":378,"description":379,"published":380,"category":362,"image":381,"draft":312},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Секретний ключ Stripe у фронтенді може рухати гроші","Секретний ключ Stripe, відкритий у вашому фронтенді, може повертати кошти, списувати й читати кожну картку клієнта. А ключ pk_live_ там і має бути.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":383,"title":384,"description":385,"published":386,"category":362,"image":387,"draft":312},"\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":389,"title":390,"description":391,"published":392,"category":362,"image":393,"draft":312},"\u002Fblog\u002Fbase44-source-maps","Безпека Base44: що позначає скан і що з цього виправляти вам","Безпека Base44 на 5 438 просканованих застосунках: три знахідки майже на кожному належать платформі, source map є бейджем Base44, а ваша частина коротка.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":395,"title":396,"description":397,"published":398,"category":362,"image":399,"draft":312},"\u002Fblog\u002Fis-cursor-ai-safe","Чи безпечний Cursor AI? Редактор, код і опублікований застосунок","Чи безпечний Cursor AI? Три запитання в одному пошуку: що Cursor зберігає, у чому помиляється його код і чи відкритий застосунок, який ви опублікували.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":401,"title":402,"description":403,"published":404,"category":362,"image":405,"draft":312},"\u002Fblog\u002Fis-replit-safe","Чи безпечний Replit? Що ми знайшли в 3 042 живих застосунках Replit","Чи безпечний Replit? Ми прогнали 3 042 живі застосунки Replit через дев’ять зовнішніх перевірок. Знахідки були в опублікованому застосунку, а не в хостингу.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":407,"title":408,"description":409,"published":410,"category":308,"image":411,"draft":312},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: у копії бази даних немає жодного файлу","Supabase storage backup це окрема робота. Копії бази даних зберігають список ваших файлів і жодного з них, тож після відновлення кожне завантаження зламане.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":413,"title":414,"description":415,"published":416,"category":308,"image":417,"draft":312},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Point-in-time recovery у Supabase: ціна та межі","Point-in-time recovery у Supabase відмотує базу на будь-яку секунду за останній тиждень. Коштує $100 на місяць понад Pro і покриває лише базу даних.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":419,"title":420,"description":421,"published":422,"category":308,"image":423,"draft":312},"\u002Fblog\u002Fsupabase-project-paused-recover","Проєкт Supabase на паузі? Ваші дані нікуди не зникли","Supabase поставив ваш проєкт на паузу після тижня без активності. Нічого не видалено, кнопка Restore стоїть поруч із назвою, і у вас є рік, щоб натиснути.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":425,"title":426,"description":427,"published":428,"category":362,"image":429,"draft":312},"\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":431,"title":432,"description":433,"published":434,"category":362,"image":435,"draft":312},"\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":437,"title":438,"description":439,"published":440,"category":362,"image":441,"draft":312},"\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":443,"title":444,"description":445,"published":446,"category":362,"image":447,"draft":312},"\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":449,"title":450,"description":451,"published":452,"category":362,"image":453,"draft":312},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Сканери безпеки для vibe coding у порівнянні, наш теж","Найкращий сканер безпеки для vibe coding залежить від трьох питань, на які не відповідає жоден перелік функцій. Десять інструментів і ціни.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":455,"title":456,"description":457,"published":458,"category":362,"image":459,"draft":312},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: п’ять перевірок, які зробите самі","Supabase security checker читає ваш опублікований застосунок, а не налаштування проєкту. Ось п’ять перевірок і як виконати кожну самостійно.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":461,"title":462,"description":463,"published":464,"category":362,"image":465,"draft":312},"\u002Fblog\u002Fvibe-coding-security-scanner","Сканер безпеки для vibe coding: чого не бачить скан URL","Сканер безпеки для vibe coding читає ваш робочий застосунок ззовні. Що це охоплює, чотири речі, яких він не бачить, і як читати результат.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":467,"title":468,"description":469,"published":470,"category":362,"image":471,"draft":312},"\u002Fblog\u002Fmissing-security-headers","Відсутні заголовки безпеки: коли це справді важливо","Відсутні заголовки безпеки трапляються в наших звітах найчастіше. Від чого вони захищають і коли це найменш терміновий рядок вашого звіту.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":473,"title":474,"description":475,"published":476,"category":362,"image":477,"draft":312},"\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":479,"title":480,"description":481,"published":482,"category":362,"image":483,"draft":312},"\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":485,"title":486,"description":487,"published":488,"category":308,"image":489,"draft":312},"\u002Fblog\u002Fsupabase-backup-tools-compared","Інструменти резервного копіювання Supabase, і наш серед них","Чотири види інструментів резервного копіювання Supabase, що копіює кожен і коли безкоштовна GitHub Action виграє в будь-якої оплати, нашої теж.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":491,"title":492,"description":493,"published":494,"category":362,"image":495,"draft":312},"\u002Fblog\u002Freplit-secrets-explained","Як користуватися секретами в Replit і що все одно публікується","Як користуватися секретами в Replit: додати, прочитати і усунути дві причини undefined. А ще ключі, які цей інструмент не здатен зберегти в таємниці.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":341,"title":5,"description":311,"published":342,"category":308,"image":330,"draft":312},{"path":498,"title":499,"description":500,"published":501,"category":362,"image":502,"draft":312},"\u002Fblog\u002Fis-supabase-secure","Чи безпечний Supabase? Так. Ваш проєкт це інше питання","Чи безпечний Supabase? Платформа проходить аудити, шифрує дані й тримає пентести. Їхня документація каже, де це закінчується і починаються ваші налаштування.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":504,"title":505,"description":506,"published":507,"category":362,"image":508,"draft":312},"\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":510,"title":511,"description":512,"published":513,"category":362,"image":514,"draft":312},"\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":516,"title":517,"description":518,"published":519,"category":362,"image":520,"draft":312},"\u002Fblog\u002Fcors-wildcard-security-risk","Чи є вайлдкард CORS ризиком для безпеки? Майже ніколи.","Чи є вайлдкард CORS ризиком для безпеки? Зазвичай це типове налаштування вашого білдера, і воно не видає нічого, що ваш сервер і так віддавав кожному.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":522,"title":523,"description":524,"published":525,"category":308,"image":526,"draft":312},"\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":202,"title":528,"description":529,"published":530,"category":308,"image":531,"draft":312},"Як відновити резервну копію Supabase, і що ламається потім","Як відновити резервну копію Supabase з панелі або з файлу дампа, що саме замінює відновлення і чому ваш застосунок може лишитися зламаним після нього.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":136,"title":533,"description":534,"published":535,"category":362,"image":536,"draft":312},"Ваш бакет Supabase Storage публічний. Чи це проблема?","Публічний бакет Supabase Storage означає, що той, хто має URL файлу, може його відкрити. Він не означає, що хтось може переглянути список вмісту.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":538,"title":539,"description":540,"published":541,"category":362,"image":542,"draft":312},"\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":544,"title":545,"description":546,"published":547,"category":308,"image":548,"draft":312},"\u002Fblog\u002Fai-agent-deleted-my-database","ШІ-агент видалив мої дані в Supabase. Що можна відновити?","ШІ-агент видалив дані з вашої бази. Те, що ви зможете відновити, вирішилося раніше, а наступні хвилини вирішують, скільки з цього вціліє.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":550,"title":551,"description":552,"published":553,"category":362,"image":554,"draft":312},"\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":556,"title":557,"description":558,"published":553,"category":362,"image":559,"draft":312},"\u002Fblog\u002Fsource-maps-exposed-in-production","Відкриті source maps: ваш застосунок публікує свій вихідний код","Відкрита source map дає будь-кому прочитати оригінальний код вашого застосунку, разом із коментарями. Перевірка за 30 секунд, і що важить насправді.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":561,"title":562,"description":563,"published":564,"category":362,"image":565,"draft":312},"\u002Fblog\u002Fsupabase-new-api-keys","Нові API-ключі Supabase: який із них безпечний у застосунку?","Supabase замінив anon і service_role публічними та секретними ключами. Який із них має бути у вашому застосунку, а який не має бути ніколи?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":38,"title":567,"description":568,"published":569,"category":308,"image":570,"draft":312},"Чи робить Supabase резервні копії моєї бази? Залежить від тарифу.","Чи робить Supabase резервні копії вашої бази даних? На платних тарифах щодня, на безкоштовному жодної. Як дізнатися, що у вас насправді є.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":572,"title":573,"description":574,"published":575,"category":362,"image":576,"draft":312},"\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":578,"title":579,"description":580,"published":575,"category":308,"image":581,"draft":312},"\u002Fblog\u002Fversion-history-is-not-a-backup","Історія версій не є резервною копією. Вона не поверне таблицю.","Lovable і Bolt ведуть історію версій вашого коду. Ваша база даних працює як окремий сервіс, тож відкат назад не поверне ваші дані.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":214,"title":583,"description":584,"published":585,"category":308,"image":586,"draft":312},"Три способи зробити резервну копію бази Supabase, і чого бракує","Панель, pg_dump і керований сервіс. Що насправді зберігає кожен спосіб, що тихо лишає осторонь і який із них переживе втрату акаунта.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":588,"title":589,"description":590,"published":585,"category":362,"image":591,"draft":312},"\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",1790150956965]