207 lines
53 KiB
SQL
207 lines
53 KiB
SQL
-- ============================================================================
|
||
-- Memos demo seed data
|
||
--
|
||
-- Login on the demo instance is SSO-only, so visitors always arrive as a
|
||
-- brand-new user with an empty timeline. All seed content is therefore
|
||
-- designed to be consumed through Explore:
|
||
-- * PUBLIC memos — the logged-out storefront (screenshots, first visit)
|
||
-- * PROTECTED memos — the reward for signing in; Explore visibly gains
|
||
-- content after login, teaching the visibility model
|
||
-- * PRIVATE memos — none seeded: nobody can ever log in as a seed user
|
||
--
|
||
-- Cast (passwords were random and discarded — seed users are NPCs):
|
||
-- 1 steven (ADMIN) — Memos maintainer; welcome, sponsors, changelog, tips
|
||
-- 2 johnny (USER) — backend dev & reader; TILs, cheat sheets, weekly review
|
||
-- 3 bob (USER) — traveling photographer; locations, photo attachment
|
||
-- 4 sam (USER) — reader & cook; books, recipes, movie lists
|
||
-- ============================================================================
|
||
|
||
INSERT INTO user (id,username,role,nickname,description,password_hash) VALUES(1,'steven','ADMIN','Steven','Creator & maintainer of Memos. I water this demo instance daily 🪴','$2y$12$A/8h4XS6hQmRVVSRFQHsR.wWVJbSG40avhuphOBdK5ws99W1kunr6');
|
||
INSERT INTO user (id,username,role,nickname,description,password_hash) VALUES(2,'johnny','USER','Johnny','Backend dev. Notes about Git, Go, and whatever I broke today 🔧','$2y$12$CaqLYlvpHjL1qbVNny0lre59ctT2doIvVLh4Pn1yipsDUtbcbeum6');
|
||
INSERT INTO user (id,username,role,nickname,description,password_hash) VALUES(3,'bob','USER','Bob','Traveling photographer. Writing places down before I forget them 🌍','$2y$12$A/8h4XS6hQmRVVSRFQHsR.wWVJbSG40avhuphOBdK5ws99W1kunr6');
|
||
INSERT INTO user (id,username,role,nickname,description,password_hash) VALUES(4,'sam','USER','Sam','Reader, cook, maker of lists 📚🍜','$2y$12$CaqLYlvpHjL1qbVNny0lre59ctT2doIvVLh4Pn1yipsDUtbcbeum6');
|
||
|
||
-- ============================================================================
|
||
-- Pinned memos (Welcome leads — newest created_ts in the pinned section)
|
||
-- ============================================================================
|
||
|
||
-- 1. Welcome (steven, pinned) — orientation + SSO call-to-action + protected teaser
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,pinned,payload) VALUES(1,'welcome0000001',1,strftime('%s','now','-2 days'),strftime('%s','now','-2 days'),replace('# Welcome to Memos 👋\n\nHi, I''m Steven — I build Memos. You''ve found the public demo: a real, living instance where you can poke at every feature before self-hosting your own.\n\nMemos is an open-source, self-hosted home for short-form thoughts. Capture quickly, organize lightly, own everything.\n\n> Most apps treat notes like documents. Memos treats them like thoughts — small, timestamped, searchable.\n\n## Make yourself at home\n\n- [ ] Scroll this Explore feed — everything here was written with Memos\n- [ ] React to a memo you like (🎉 works great on this one)\n- [ ] **Sign in** (top right) — SSO takes ten seconds and gives you your own space\n- [ ] Write your first memo. One sentence is plenty. That''s the point.\n- [ ] Like it? Star [the repo](https://github.com/usememos/memos) ⭐\n\n🔒 *Psst — a few memos on this instance are hidden until you sign in. Members only.*\n\n## What Memos can do\n\n| Feature | Where to see it |\n|---------|-----------------|\n| **Markdown** | Everywhere — tables, `code`, task lists, quotes |\n| **Tags** | `#dev/git` — nested tags grow a tree in the sidebar |\n| **Comments & reactions** | Right under this memo 👇 |\n| **Memo references** | Johnny''s weekly review links back to his week |\n| **Attachments** | Bob''s golden-hour art from the coastal trail |\n| **Locations** | Look for the 📍 pins |\n| **Visibility** | Public, protected, or private — chosen per memo |\n\n## Take it home\n\n```bash\ndocker run -d -p 5230:5230 -v ~/.memos:/var/opt/memos neosmemo/memos:stable\n```\n\nYour data lives in one SQLite file, on your machine. #welcome #getting-started','\n',char(10)),'PUBLIC',1,'{"tags":["welcome","getting-started"],"property":{"hasLink":true,"hasCode":true,"hasTaskList":true,"hasIncompleteTasks":true}}');
|
||
|
||
-- 2. Sponsors (steven, pinned) — sits below Welcome (older created_ts)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,pinned,payload) VALUES(2,'sponsors000001',1,strftime('%s','now','-6 days'),strftime('%s','now','-6 days'),replace('Memos is free and open source, kept independent by its sponsors — no ads, no telemetry, no paywalls. 🙏 If you build with Memos, please consider supporting them in return.\n\n## ⭐ Sponsors\n\n<a href="https://coderabbit.link/usememos" target="_blank" rel="noopener"><img src="https://victorious-bubble-f69a016683.media.strapiapp.com/Orange_Typemark_43bf516c9d.svg" alt="CodeRabbit" height="44" /></a>\n\nCut code review time & bugs in half, instantly. [coderabbit.link/usememos →](https://coderabbit.link/usememos)\n\n---\n\n**SSD Nodes** — Affordable VPS hosting for self-hosters. [ssdnodes.com →](https://ssdnodes.com/?utm_source=memos&utm_medium=sponsor)\n\n---\n\nWant to see your company here? Reach out via [GitHub Sponsors](https://github.com/sponsors/usememos).\n\n#sponsors','\n',char(10)),'PUBLIC',1,'{"tags":["sponsors"],"property":{"hasLink":true}}');
|
||
|
||
-- ============================================================================
|
||
-- Public timeline — mixed lengths, four voices, dense in the last 48 hours
|
||
-- and thinning out toward -22 days so the feed reads as a living instance
|
||
-- ============================================================================
|
||
|
||
-- 10. Steven: official Chrome extension launch (featured first in Explore)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(10,'webclipper0001',1,strftime('%s','now','-30 minutes'),strftime('%s','now','-30 minutes'),replace('# ✂️ Memos Web Clipper for Chrome\n\nThe ***official*** Memos Web Clipper turns the page you''re reading into a source-linked memo in under five seconds.\n\n[Add Memos Web Clipper to Chrome →](https://chromewebstore.google.com/detail/memos-web-clipper/nebaoebnljalfegiidibihhkebeiklbl)\n\n| Capture from Chrome | What lands in Memos |\n|---------------------|---------------------|\n| Current page | Title, summary, and source link |\n| Text selection | Quoted excerpt with its source |\n| Selected image | A real attachment on your instance |\n\nEdit the generated memo, choose its visibility, or customize the template and default tags before saving.\n\n### Private by design\n\nThe clipper sends captured content only to the self-hosted Memos instance you connect — and only when you save. No analytics, third-party servers, or tracking. #memos/extensions','\n',char(10)),'PUBLIC','{"tags":["memos","memos/extensions"],"property":{"hasLink":true}}');
|
||
|
||
-- 3. Bob: photo memo with an image attachment + location
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(3,'goldenhour0001',3,strftime('%s','now','-3 hours'),strftime('%s','now','-3 hours'),'Golden hour on the coastal trail tonight. The camera couldn''t hold the colors, so here''s my minimal-art rendition instead 🎨 #travel/hikes','PUBLIC','{"tags":["travel","travel/hikes"],"property":{"hasLink":false},"location":{"placeholder":"Point Reyes, California, United States","latitude":37.9954,"longitude":-123.0204}}');
|
||
|
||
-- 27. Steven: build-in-public changelog note (real v0.30 highlights)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(27,'v030changelog1',1,strftime('%s','now','-6 hours'),strftime('%s','now','-6 hours'),replace('Rolled v0.30 out to this demo instance 🚀 The highlights:\n\n- Editor rebuilt on CodeMirror — your markdown stays plain text, but formatting renders as you type\n- Scroll position is restored when you navigate back to a long feed\n- Tooltip polish and a pile of small fixes\n\nFull notes: [github.com/usememos/memos/releases](https://github.com/usememos/memos/releases)\n\nDogfooding note: this memo was of course drafted in the new editor. #memos/changelog','\n',char(10)),'PUBLIC','{"tags":["memos","memos/changelog"],"property":{"hasLink":true}}');
|
||
|
||
-- 4. Sam: one-line book quote
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(4,'samquote000001',4,strftime('%s','now','-7 hours'),strftime('%s','now','-7 hours'),replace('> "We tell ourselves stories in order to live." — Joan Didion\n\nBeen thinking about this all morning. #books','\n',char(10)),'PUBLIC','{"tags":["books"],"property":{"hasLink":false}}');
|
||
|
||
-- 5. Johnny: weekly review — REFERENCES his memos from the past week (see memo_relation)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(5,'johnnyweekly001',2,strftime('%s','now','-22 hours'),strftime('%s','now','-22 hours'),replace('## 🗓️ Week 28 review\n\n**Shipped:** v0.2 of the side project finally went out.\n\n**Learned:** the single-file branch diff trick — small thing, saves me daily.\n\n**Reading:** still working through *Deep Work*. The no-Slack-before-11am rule survived its second week.\n\n**Next week:** actually write the digest CLI I keep talking about, or stop talking about it.\n\nLinked the memos below so future me can retrace the week. #weekly','\n',char(10)),'PUBLIC','{"tags":["weekly"],"property":{"hasLink":false}}');
|
||
|
||
-- 6. Steven: short product tip
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(6,'tagtipmemo0001',1,strftime('%s','now','-26 hours'),strftime('%s','now','-26 hours'),'Tip: tags are just typed inline — `#like/this` — and nested ones grow a tree in the sidebar. No setup, no tag manager. #getting-started','PUBLIC','{"tags":["getting-started"],"property":{"hasLink":false}}');
|
||
|
||
-- 7. Johnny: shipped-it note
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(7,'johnnyshipped01',2,strftime('%s','now','-2 days','+3 hours'),strftime('%s','now','-2 days','+3 hours'),'Shipped v0.2 of my side project tonight 🚀 Rewrote the sync engine and cut startup time in half. Scrolling back through my own #dev/til memos made the changelog write itself.','PUBLIC','{"tags":["dev","dev/til"],"property":{"hasLink":false}}');
|
||
|
||
-- 8. Johnny: short TIL with a code block (referenced by the weekly review)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(8,'johnnytilgit001',2,strftime('%s','now','-3 days'),strftime('%s','now','-3 days'),replace('TIL you can diff a single file between branches — no checkout, no stash dance:\n\n```bash\ngit diff main..feature -- path/to/file.go\n```\n\n#dev/til #dev/git','\n',char(10)),'PUBLIC','{"tags":["dev","dev/til","dev/git"],"property":{"hasLink":false,"hasCode":true}}');
|
||
|
||
-- 29. Johnny: link/bookmark capture — a core Memos use case
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(29,'johnnybookmark1',2,strftime('%s','now','-32 hours'),strftime('%s','now','-32 hours'),'Weekend read, bookmarking before I lose it: [SQLite: 35% faster than the filesystem](https://sqlite.org/fasterthanfs.html) — makes me feel better about my entire digital life being one .db file 😄 #dev/reading','PUBLIC','{"tags":["dev","dev/reading"],"property":{"hasLink":true}}');
|
||
|
||
-- 9. Sam: recipe with a task list
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(9,'samramen000001',4,strftime('%s','now','-4 days'),strftime('%s','now','-4 days'),replace('## 🍜 Midnight miso ramen (15 minutes)\n\nFor nights when the book was too good to stop reading.\n\n- [x] Dashi or veg stock, 500ml\n- [x] Miso paste, 2 big spoons\n- [x] Noodles, one nest\n- [x] Soft egg — 6½ minutes, exactly\n- [ ] Scallions (always forget the scallions)\n\nSteep the miso, don''t boil it. That''s the whole secret. #cooking','\n',char(10)),'PUBLIC','{"tags":["cooking"],"property":{"hasLink":false,"hasTaskList":true,"hasIncompleteTasks":true}}');
|
||
|
||
-- 30. Steven: compact Markdown rendering check framed as maintainer dogfooding
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(30,'rendertest0001',1,strftime('%s','now','-10 days'),strftime('%s','now','-10 days'),replace('## 🧪 Markdown rendering check #memos/dev\n\nA quick smoke test I open after releases:\n\n**Bold**, *italic*, ~~strikethrough~~, `inline code`, and a [docs link](https://www.usememos.com/docs).\n\n> Simple notes should render beautifully.\n\n```go\nfmt.Println("syntax highlighting ✓")\n```\n\n| Check | Status |\n|-------|--------|\n| Text styles | ✅ |\n| Code blocks | ✅ |\n| Tables | ✅ |\n\n- [x] Check desktop\n- [x] Check mobile\n- [ ] Ship the next release','\n',char(10)),'PUBLIC','{"tags":["memos","memos/dev"],"property":{"hasLink":true,"hasCode":true,"hasTaskList":true,"hasIncompleteTasks":true}}');
|
||
|
||
-- 11. Sam: movie watchlist with a table
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(11,'sammovies00001',4,strftime('%s','now','-9 days'),strftime('%s','now','-9 days'),replace('## 🎬 Movie catch-up #movies\n\nWorking through films I''ve been meaning to watch for, uh, years.\n\n| Movie | Status | Rating |\n|-------|--------|--------|\n| The Grand Budapest Hotel | ✅ Watched | ⭐⭐⭐⭐⭐ |\n| Spirited Away | ✅ Watched | ⭐⭐⭐⭐⭐ |\n| Everything Everywhere All at Once | ✅ Watched | ⭐⭐⭐⭐⭐ |\n| Dune: Part Two | 📅 This weekend | — |\n| Oppenheimer | 📋 Queued | — |\n\n**Spirited Away**: cried twice, no regrets. **Everything Everywhere**: went in cold, did not expect the bagel.\n\nNext month: full Miyazaki marathon 🎨 Taking suggestions for where to start.','\n',char(10)),'PUBLIC','{"tags":["movies"],"property":{"hasLink":false}}');
|
||
|
||
-- 12. Bob: short travel journal + location
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(12,'bobnighttrain1',3,strftime('%s','now','-12 days'),strftime('%s','now','-12 days'),'Overnight train from Oslo to Bergen. Woke at 5am to fjords in fog and couldn''t go back to sleep. Some views are worth the bad coffee ☕ #travel','PUBLIC','{"tags":["travel"],"property":{"hasLink":false},"location":{"placeholder":"Bergen, Vestland, Norway","latitude":60.3913,"longitude":5.3221}}');
|
||
|
||
-- 13. Bob: travel bucket list + location
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(13,'bobbucketlist1',3,strftime('%s','now','-13 days'),strftime('%s','now','-13 days'),replace('## 🌍 My travel bucket list #travel/bucketlist\n\n> Writing this from a tiny café near the Seine. Will keep updating after each trip. 📍\n\n### Been\n- [x] Paris, France — the croissants ruined every croissant after\n- [x] Shanghai, China — modern skyline next to thousand-year-old temples, somehow it works\n- [x] Grand Canyon, USA — photos do not do it justice, and I say that professionally\n- [x] Barcelona, Spain — Gaudí''s buildings look grown, not built\n\n### Next\n- [ ] Northern Lights in Iceland — booking for winter, *finally*\n- [ ] Safari in Tanzania\n- [ ] Great Barrier Reef, before it gets worse\n- [ ] New Zealand road trip — south island, two weeks minimum','\n',char(10)),'PUBLIC','{"tags":["travel","travel/bucketlist"],"property":{"hasTaskList":true,"hasIncompleteTasks":true},"location":{"placeholder":"Paris, Île-de-France, France","latitude":48.8566,"longitude":2.3522}}');
|
||
|
||
-- 14. Johnny: git cheat sheet — long-form anchor with code blocks
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(14,'johnnygitcheat1',2,strftime('%s','now','-17 days'),strftime('%s','now','-17 days'),replace('## ⚡ Git commands I keep forgetting #dev/git #dev/cheatsheet\n\nWriting these down so I stop googling the same things every week.\n\n```bash\n# Show the last commit in detail\ngit show --stat HEAD\n\n# Undo the last commit, keep changes staged\ngit reset --soft HEAD~1\n\n# Stash including untracked files\ngit stash push -u -m "wip: before refactor"\n\n# Find which commit introduced a string\ngit log -S "function_name" --source --all\n```\n\nThe `-S` one is gold for archaeology — way better than scrolling blame.','\n',char(10)),'PUBLIC','{"tags":["dev","dev/git","dev/cheatsheet"],"property":{"hasLink":false,"hasCode":true}}');
|
||
|
||
-- 15. Johnny: reading note + café location (oldest memo — the back of the feed)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(15,'johnnyreading01',2,strftime('%s','now','-22 days'),strftime('%s','now','-22 days'),replace('## 📖 Reading: Deep Work #books\n\nStarted Cal Newport''s *Deep Work* this week. This passage stopped me:\n\n> "Human beings, it seems, are at their best when immersed deeply in something challenging."\n\nThat''s the whole pitch in one sentence. The rest of the book is evidence.\n\nExperiment for the next two weeks: no Slack or email before 11am. See what shifts when the morning is mine.','\n',char(10)),'PUBLIC','{"tags":["books"],"property":{"hasLink":false},"location":{"placeholder":"Sightglass Coffee, San Francisco, California, United States","latitude":37.7726,"longitude":-122.4099}}');
|
||
|
||
-- ============================================================================
|
||
-- Protected memos — invisible when logged out; Explore gains these after SSO
|
||
-- sign-in, which is how visitors *experience* the visibility model
|
||
-- ============================================================================
|
||
|
||
-- 16. Steven: self-referential visibility explainer
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(16,'protectedintro',1,strftime('%s','now','-20 hours'),strftime('%s','now','-20 hours'),replace('🔓 **If you can read this, you''re signed in.**\n\nThis memo''s visibility is **Protected** — every member of this instance can see it, but the logged-out public can''t. There''s a third level, **Private**, that only the author ever sees.\n\nEvery memo picks its own level: public for the world, protected for your team or community, private for your 3am thoughts. #getting-started','\n',char(10)),'PROTECTED','{"tags":["getting-started"],"property":{"hasLink":false}}');
|
||
|
||
-- 17. Johnny: half-formed idea — protected memos are naturally rougher
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(17,'johnnydigestcli',2,strftime('%s','now','-9 hours'),strftime('%s','now','-9 hours'),'Half-formed idea: a tiny CLI that collects my #dev/til memos into a weekly digest. Memos has a full API with access tokens, so this is one evening of work. Parking it here so future me has no excuses.','PROTECTED','{"tags":["dev","dev/til"],"property":{"hasLink":false}}');
|
||
|
||
-- 18. Bob: members-only packing list
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(18,'bobpacklist001',3,strftime('%s','now','-5 days'),strftime('%s','now','-5 days'),replace('Coast trip packing list — members-only edition, because nobody needs to know how much coffee gear I carry:\n\n- [x] Camera + the one lens I''ll actually use\n- [x] AeroPress, hand grinder, scale ☕\n- [x] Rain shell\n- [ ] The second lens I won''t use but will pack anyway\n\n#travel/hikes','\n',char(10)),'PROTECTED','{"tags":["travel","travel/hikes"],"property":{"hasLink":false,"hasTaskList":true,"hasIncompleteTasks":true}}');
|
||
|
||
-- 19. Sam: confession
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(19,'sambookpile001',4,strftime('%s','now','-30 hours'),strftime('%s','now','-30 hours'),'Note to self: stop buying books faster than I read them. Current pile: 9. Keeping this memo protected so only fellow members witness my shame 📚 #books','PROTECTED','{"tags":["books"],"property":{"hasLink":false}}');
|
||
|
||
-- ============================================================================
|
||
-- Comments (memos linked via memo_relation COMMENT)
|
||
-- ============================================================================
|
||
|
||
-- 20. Sam on Welcome
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(20,'cmtwelcome0001',4,strftime('%s','now','-21 hours'),strftime('%s','now','-21 hours'),'Signed in with GitHub and posted my first memo inside a minute. Lowest-friction note app I''ve used 👏','PUBLIC','{"property":{"hasLink":false}}');
|
||
|
||
-- 21–22. Thread on Johnny's git cheat sheet
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(21,'cmtgitcheat001',3,strftime('%s','now','-17 days','+5 hours'),strftime('%s','now','-17 days','+5 hours'),'Saving the `git log -S` one. Code archaeology mode unlocked 🔥','PUBLIC','{"property":{"hasLink":false}}');
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(22,'cmtgitcheat002',2,strftime('%s','now','-17 days','+6 hours'),strftime('%s','now','-17 days','+6 hours'),'Also try `git log -p -- path/to/file` when you want the actual content changes for one file. Same archaeology vibe.','PUBLIC','{"property":{"hasLink":false}}');
|
||
|
||
-- 23–24. Thread on Bob's golden-hour memo
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(23,'cmtgolden00001',4,strftime('%s','now','-2 hours'),strftime('%s','now','-2 hours'),'Okay, the gradient sky is gorgeous. Which trail is this?','PUBLIC','{"property":{"hasLink":false}}');
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(24,'cmtgolden00002',3,strftime('%s','now','-1 hours'),strftime('%s','now','-1 hours'),'Point Reyes, the stretch north of the lighthouse — tap the 📍 on the memo. Golden hour there never misses.','PUBLIC','{"property":{"hasLink":false}}');
|
||
|
||
-- 25. Johnny on Sam's movie list
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(25,'cmtmovies00001',2,strftime('%s','now','-8 days'),strftime('%s','now','-8 days'),'Start the Miyazaki marathon with *Porco Rosso*. Trust me.','PUBLIC','{"property":{"hasLink":false}}');
|
||
|
||
-- 28. Johnny on Steven's changelog note
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(28,'cmtchangelog01',2,strftime('%s','now','-4 hours'),strftime('%s','now','-4 hours'),'Scroll restoration 🙏 Losing my place in a long feed was my one real gripe. The new editor feels noticeably snappier too.','PUBLIC','{"property":{"hasLink":false}}');
|
||
|
||
-- 31. Johnny on the rendering test memo (includes an @mention)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(31,'cmtrendertest1',2,strftime('%s','now','-10 days','+4 hours'),strftime('%s','now','-10 days','+4 hours'),'The fact that the public demo doubles as your CI is very on brand, @steven 😄','PUBLIC','{"property":{"hasLink":false}}');
|
||
|
||
-- 26. Johnny on the protected explainer (protected too — consistent visibility)
|
||
INSERT INTO memo (id,uid,creator_id,created_ts,updated_ts,content,visibility,payload) VALUES(26,'cmtprotected01',2,strftime('%s','now','-18 hours'),strftime('%s','now','-18 hours'),'Can confirm: this memo did not exist for me until I signed in. Neat trick 👀','PROTECTED','{"property":{"hasLink":false}}');
|
||
|
||
-- ============================================================================
|
||
-- Relations
|
||
-- ============================================================================
|
||
|
||
-- Comments
|
||
INSERT INTO memo_relation VALUES(20,1,'COMMENT'); -- Sam → Welcome
|
||
INSERT INTO memo_relation VALUES(21,14,'COMMENT'); -- Bob → git cheat sheet
|
||
INSERT INTO memo_relation VALUES(22,14,'COMMENT'); -- Johnny → git cheat sheet
|
||
INSERT INTO memo_relation VALUES(23,3,'COMMENT'); -- Sam → golden hour
|
||
INSERT INTO memo_relation VALUES(24,3,'COMMENT'); -- Bob → golden hour
|
||
INSERT INTO memo_relation VALUES(25,11,'COMMENT'); -- Johnny → movie list
|
||
INSERT INTO memo_relation VALUES(26,16,'COMMENT'); -- Johnny → protected explainer
|
||
INSERT INTO memo_relation VALUES(28,27,'COMMENT'); -- Johnny → v0.30 changelog
|
||
INSERT INTO memo_relation VALUES(31,30,'COMMENT'); -- Johnny → rendering test
|
||
|
||
-- References: Johnny's weekly review links back to his week
|
||
INSERT INTO memo_relation VALUES(5,7,'REFERENCE'); -- weekly review → shipped v0.2
|
||
INSERT INTO memo_relation VALUES(5,8,'REFERENCE'); -- weekly review → git diff TIL
|
||
INSERT INTO memo_relation VALUES(5,15,'REFERENCE'); -- weekly review → Deep Work note
|
||
|
||
-- ============================================================================
|
||
-- Reactions (types must come from the MEMO_RELATED reactions list below)
|
||
-- ============================================================================
|
||
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(1,2,'memos/welcome0000001','🎉');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(2,3,'memos/welcome0000001','🎉');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(3,4,'memos/welcome0000001','👍');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(4,2,'memos/sponsors000001','🚀');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(5,3,'memos/sponsors000001','👍');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(6,2,'memos/goldenhour0001','🔥');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(7,4,'memos/goldenhour0001','💛');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(8,1,'memos/goldenhour0001','👏');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(9,2,'memos/samquote000001','💛');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(10,3,'memos/samquote000001','👀');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(11,1,'memos/johnnyweekly001','👏');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(12,4,'memos/johnnyweekly001','💡');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(13,1,'memos/johnnyshipped01','🚀');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(14,4,'memos/johnnyshipped01','🎉');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(15,3,'memos/johnnyshipped01','🔥');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(16,3,'memos/johnnytilgit001','💡');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(17,4,'memos/johnnytilgit001','+1');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(18,3,'memos/samramen000001','👌');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(19,2,'memos/samramen000001','💛');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(20,1,'memos/sammovies00001','👍');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(21,4,'memos/bobnighttrain1','💛');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(22,3,'memos/johnnygitcheat1','🔥');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(23,4,'memos/johnnygitcheat1','💡');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(24,4,'memos/webclipper0001','💡');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(25,1,'memos/tagtipmemo0001','👍');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(26,2,'memos/protectedintro','👀');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(27,3,'memos/protectedintro','✅');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(28,4,'memos/bobpacklist001','😂');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(29,3,'memos/sambookpile001','😂');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(30,2,'memos/v030changelog1','🎉');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(31,4,'memos/v030changelog1','🚀');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(32,3,'memos/v030changelog1','🔥');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(33,1,'memos/johnnybookmark1','👀');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(34,2,'memos/rendertest0001','😂');
|
||
INSERT INTO reaction (id,creator_id,content_id,reaction_type) VALUES(35,4,'memos/rendertest0001','💡');
|
||
|
||
-- ============================================================================
|
||
-- Attachment: Bob's golden-hour art (stored in the database blob column;
|
||
-- empty storage_type = database storage). Size must match the blob length.
|
||
-- ============================================================================
|
||
|
||
INSERT INTO attachment (id,uid,creator_id,created_ts,updated_ts,filename,type,size,memo_id,storage_type,blob) VALUES(1,'goldenhourart1',3,strftime('%s','now','-3 hours'),strftime('%s','now','-3 hours'),'golden-hour-trail.png','image/png',12168,3,'',X'89504E470D0A1A0A0000000D49484452000001E00000012C0802000000949CF70D00002F4F4944415478DAEDDDF79B54C79EDFF1FA2BEC8DF6F3ACBD42BA80AE77D7D77BBDBBBE5E5FEFAEAFC949C421CC0C93330C41E428B2009173CE19869CB31008100A8024945096AE12133BD955DFAA3A7DCE049870CEE93ADD9FE779FF2060A6BBAAE6F4ABAA5BD0CD9EFBAB3E0821840C8CB5FBABDE0821840C8CBDF09F7A2384103230D6FE3FF74608216460ACE35FF74608216460ECD77FDD1B21849081B1BF79AE3742082103637FD7AE374208210363BF79BE3742082103637FFF7C6F84104206C67EFB426F84104206C6FEE157BD1042081918FBA7F6BD1042081918FB5DFB5E0821840C8CFD73875E0821840C8CFDBE632F84104206C6FEE5C55E0821840C8CFDDB8BBD1042081918FBC3AF7B2184103230D6E9BFF44208216460ACF3DFF44208216460ACEBDFF64408216460ACFBDFF64408216460ACE7DFF54408216460ACF77FED891042C8C0D84BBFE9891042C8C058BFDFF444082164606CC07FEB891042C8C0D8A0BFEF891042C8C058DA6F7B228410323036E4B73D11420819181BF6DF7B208410323096F10F3D10420819181BFE8F3D1042081918CBFEC71E0821840C8CE5FE530F84104206C6F2FF470F84104206C60A7FD70321849081B1E2DFF54008216460ACE47FF64008216460ACEC9F7B208410323036F27F7547082164606CD4EFBB238410323036E6F7DD11420819187BF97F7747082164606CFCBF7447082164606CE2BF7647082164606CF2BF7647082164606CEABF7547082164606CDAFFE98E1042C8C0D88C3F744708216460EC953F7447082164606CF6FFED861042C8C0D8DC4EDD10420819189BDFB91B4208210363AF76EE861042C8C0D8A22EDD10420819187BAD6B3784104206C69674EB861042C8C0D8B26EDD10420819185BD1BD1B4208210363AB7A7443082164606C4DCFAE0821840C8CADEBD51521849081B10DBDBA2284103230B6A9775784104206C6B6F4E98A1042C8C0D8B697BA2284103230B6FDA5AE0821840C8CEDECDB1521849081B1DDFDBA2284103230B6B77F5784104206C6F6F7EF821042C8C0D8C1015D10420819183B3CB00B42082103631583BA2084103230766C501784104206C64EA4754108216460ECE4E02E0821840C8C9D1ED20521849081B1B343BA2084103230767E681784104206C62E0EEB8C1042C8C0D8E5F4CE0821840C8C5DCDE88C1042C8C0D8F58CCE0821840C8CDDC8EC8C1042C8C0D81BC33B2384103230762BAB334208210363B7B33A23841032307637BB334208210363F7723A2384103230F64E6E6784104206C6DECBED841042C8C0D883BC4E0821840C8CBD9FDF0921849081B10F0B3A2184103230F6A8A01342082103631F17764208216460ECD3A24E0821840C8C3D2EEE841042C8C0D817259D1042081918FBAAA41342082103635F97764208216460ECEBB24E0821840C8C7D3DA23342E8D98D6C555837D486D837233B23841AA99CD7C5D1A816E6F876BA41AC2A6A49ACFE2588502A574FD8D15D1B69CCB36AF4BB463FC56E841A8FB5F8508050F2355A56DFDF6FC774FB76ECB37A997AE697358E38161F3D2DA62F4D8452320571D76FC776AD6FAEAABB685C1B92B7F07243CAE97EE364E3C781EAC7E4258250CA3556A36CD139AE9B03D6F1B21EB2EF26B43CFDBD14DD9A03EE6E4EB5BB5A64232463FA324528656A2832E9F91DAF9EB013793DEB37A91935FCAE89F5EDFE6E7C77A7DA76AFF1634222E67C36875052374EA32C39B68B3CD1C6B19DDAC9BD5CA871BE7BD8D456E321AFF538F1F34AF958FC6A402879FB6E7C372DB2CC12B987CD62C5F1F7BC29F67A7F3FB5B54D91C56F4DAB4D771727BB87CDEBEE71AFF1B34BEDD877D65102A1644D921717B98725F2F7229BC5537BC56D9D66D527DEF46667FF2E793B0EBB6D775ADF6B6BF3E86EC71AA5604C1F28104AC62676B7A1DC438BDCB31191ED1CDB9D9DD1E78FA2971A6966831AFDB219E2461AD8DDDBA6762FA7D76284E4750F8D357E94291AA32B18A1648C80FB7E720F8D724F2D326511399DD7E78FD325C47D1AC7F795BEAD6C66DFC61057F7A5C9B66D0FD6F004D67A3B99AC3718FC4C532CF63DBF82114ABEA4CB53A838CABDB4C8BD6D22F7715A6CE37896BD7EA2D9CD4E7EBDFD16E270D7235B0F4362ADBCB6ED25721624357EB22915A3EB18A1E44AB9DC53A3DC8B44A694C832C9316593F487D9FD1CCD91F56FBCB954E37FAABFD7766B7F9C5D8F6C3D0081B56DCFA0D112D6BD34D67ABFC1CF376562EA478E5072349522D4FEC85328F77E0ACA3F0891FB3A2DEE1797D76A1E6F400B6B70238DA82D06A0BDB6B0EE63C35A6F2D0DA546C91E5317344249D0B49E843235A3B74A62F74A1F1259A445EEEB10796E3F1BC4368EE78B7E8C3750B4E0A9C9AFD1DF226F214EB6436DDB0066EB5109ACAD5D44EF2B722E426ADA7804D6F889277F4CFEB0110A7C7697673A5CFE611665091817B99F43643BC40B0638CC7DD5DEA067E5FC7A07DFF1BB887B3DAF1ED67D6D588B913722F50C3D5FFCDC933AA67ECC0805BA19BDB4CBBD09E53E3FCCEAA35D269AE75073B5CBC4E28FBCF9FD6D220FA86FF1C241F55B6495D644F4A70B1BABBEDA036C5E8BC168ACFB69ACFB6AACF51E435323A969A676A95132C6E8CA4628C829977BFF60B93CBB3197E7F5FBD18EF2025D9CE381F520FE4994265AFC9406534D7F81BC054BF638D976AFF560E6F7975893D77A3BA92F751F315381B58D69948C3175712314CC7E78859A45344B97E7BCA45D1634FF388F92F02DE8AF511E604359B8FCD3229DDDD6D778831D2D69768E6FA49B72A8ADEE4E491DC7DA29B5C05A8C9FA4D6FB8D9C665C6A5C06491B53D7374201AD21CD73FBFEC86BE8F2ABDA6502F1A74503B5C8836C1C6B941DDA0EF96969FD7E6EA2865F29BEBD3EDC76AF690072240BF5862187AA8ED5526ABDD3CCEDABA5D64F14E40AE04A48C698FAE92214C466F7D12EBFF4A3C3E57EDAE5FE0ABB8503387F3F592E2FD62E5B285B802E1D1CF77799D550D5F266677D8B75234A70BA8BB8D76936AF2DAC07CAD1EA4D65809A4B5CEABE72BE72EEB40EB81E9230A67EB408052EE532D13CAFAF76B99F7659D0FCD3426A91D3E5D706699495CB3F2F95D944AEA7ED0ADEB09647DF581F6EBBD7E27E35D6D66EA1C729872DA416B320A9F5AE23673AAFAF965AEE52B82A922DF623BFC4110A5C732929D4FCBEE4723FE9F24F3CBBCB8B073A5C1628A7FD6CA1BC6CB016798893632DF24A47BFAC4A6F66F5BEB131B2E94E15D67A3C52EA258D49BD688096BABF965AEE497DB5D4B426B8369228A67EA80805A8792F6997FB92CBFDB4CB44F3A201DAE581DAE5418472DACF4BD31C2E2FD72EAFD0498565AB6C1CAFB697D18CF4173BD456B7ACC9D677BA7C880D6BEB382F064C520FD2523B98FE89A6DC80695C1E4915A36B1DA140A569FE89D714CDE4DACF4B066997D308654A6AB862884679A84DE461F5395E9351BFB5B2CC26CA68E45BD664386E53621DF7DADA212CA9076BA9D3A4D47C225A6A9ADDA2015A6A9AFEABFDD4462557065748B2C4D44F14A1A0B4A02FB94C2D249AA5568B0790CB037F562E0FD22EA73574F99795320BE5613691D31BB7785DE69316E650DB01B71D6B3D00392487D47A4759AAF718392F21B5DC870668A9691DE49A2C104B84EB2439623F89CB1DA1E0245C269A17F5D72E0F2097076A9707699789E6E583A5CBBFF0566A9A15CAC36C28A75B223FE1D9A95DCF1B5EBF0D4DD4F02BD73BE15E9B61F33ADD86B5536A81F510A7D4F5981653B631DDBF1ED3280962EAC7E963FFF12F7FDDA2FC1F2132B738CDFD394C3FF314CD03EBD32C5C1EFC8B7299685E25932E0FD328A72B9105CA193691331B409C25DAD8ECC4D737843BD3E6B5BA5FC25A0F468E4D486D1DF3690A2BE44E3358CD4E482D9F280CD452D346255766212D14AE96E0C7D4CFD2ED5AAA70EBF268F0C8D016F52397FB93CBD412A27929D1AC5C4E2397076B976D342B9789E6B5E94F4412E50C1BCA997152370E7780BB4954B929BB99C9AF77AA6DF73AD3867586C6DA3ACBEB5D448EDCC6B4965AEE4383D4DCE53AC8351152DB9846418EA92DB76DF9C3F1B3BD76632EC8D87E5E4C3542B3D0F997E53C49F36045B37279A87679D813E572BA32717D864639B31ECA959BACB22B3737684BCED36AF8F5826C75834AEA38D6D6DEA0770B3942C9B4925AEF31725E728E7CB20EA6073A99166B856B26E83175D1B73043447E7AAD9B1A32B4D788E62544F3524AB83C885C4EFB65451AB94C34AFA25613CD1C65997239BD119789CB4A9E85B2C36227C75B4562306200F2AEE5A996A05C32507E81C8A1B6DD6B9BFE1B876BAC33B5D4195A6ABD97D0F815D3426A9A9D905AEE4672674A93ABA15666092D94661A053746D77DB30A04CA4D62DDEC69224393E81040BF709705CD839AA2F9094FB93C4CBB9CAEEC532E672A942D9737CBA4C8D9768EA95C7EEFE2BE560F132F4AF053F066F19B95DBF22AB7E55379955B729F6CCE16DAAECB10922E4FABDC962BBEC641B6BE7D29B5C25A8DC426B58D6925B5DC69863A991EEC645A2C4B03A671F10438A67E8A4D1468949BC4FAA9534626B67400B94C2D279A5710CD2BD38450AB0693CB43C8656A2DD1BCCE49F3065E66E5C64C4259D6C0E5ADD9714FB7E5546DCBE5F13B12B7B631AB726B5EE5CEC2AA3D2555FBCBAA0F8EAC3E3CAAFAC8E87887CBF96FF23FAADA535CB9A380D3CC8FE7E2358AE583E4EDF01BB461FD34A9F92049EA0C2DB5647A98C5B468B59832492DF7A734B526727D68ADC4BAE1E20972EC97A5031A96942E37ACD1B9231373D03CA81ECD4F56530E9A49E7F5E9D2E54ADE4627CDD2C42D597697AB78DB64B955DB45FC2EF82D883FDA5528503E5C5E736C6CCDC9F1356726D59E9B527B616AEDC569B517A753D36ACF4FAD3D37B9E6F4C49A13E3AA8F8EA93E545EB5AFB4726701BF7D3E183E6C799B84B5B8178DB525B5DE2DE408E580F98EB221434B2DF79B615A6AC5B4907AD56027D3F2E985DED270FD0436A67E84CB06A608CA8D4BAD170199D8726A05D1BC92685E95F664D5E027AB0793CB44F35A6A9D9DE6F44A3BCD9B32C96527CD5BB3AB78DBB4CBDB95CB553BF8A97990B885ADB9557B8AF8B958B87C7A42EDF929759767D45D9B5577636EE8E6FCD09B0B42B75F0DDD5928E2FFC17F79735EDD8D3975D75EA9BD345D607D6ABC90FAC008EEBB607AEDB0AA1D79FCC6E37724EF57EC0DD95A6AC9340D55489DA9A5167391F3B2312D9F31E82D8AAFC9AAC16A891A328D0218F39EBF17DDCE4BA9970F44C6B582745E29747E12A77930D13CC441F3FA6195C265A27923B5C94EF3707239AB4ABA6CD1BC3DC7729900CDE337CB95ACDA5D587D7044CDF1B1B567277170EBAECF0EDD9A1FBABB28FCF692F07BCB230F5646DE5F15F9604DE443EA83D5E2970F5684DF5B167EFB354136C7FADA2C71B2E6676AC17459153F4D6F1ACEC72FEFC526B5DE216854955BE5FED190E90CB5E5F0090AA987A959CB1590AB215746482D9F64C8271CB88A821A33DBE284A9ADCE6BC8809EACE4499AD31AA359E85C19A739DD41F3E64C7259D05C2568269DB7656B9773B4CBB9553BF364FC88CA7FB37A7F69CDD1D1B56726D6719A6FCCE10764EE32F7975B1CFD6443F4F1A6D8175B635F6D8B7DBD23F60DF5F576F1CB2FB6443FDB14FD78BDF0FAFEF2F0BDD7F8B19ACBCE99E607F0EA8A51557B8B2BB7E5F0315B77A7EE5D322DA4A6E109A9C580E34C6FCE543392B39333E553564CCBE710439C4CD38AAD1CA49946C18B792AF27FF80B4FF2D36BD20125AE5583C865A2790DC519E2AD1B5AC95B4F346F18E6A439C3A2B96A0BB5956896F6F12485CA654173356F172F9F1F54AB76E5571F1A5173F2E5DA0B53EAAECF0ADD5E107E67093F1D7376A39F6FE622FFBFEF773FBDD877BBB8D7D1C79BA31FAD8B3C5C290ED4B7E68BD73DCE4FE6E7717194DE91C747CBEF8EDFA983E91D398D302DA416B3B0319DE1649A1661DD5027D3F279469AC5340A62CC45943DE2B8CD64BBC1F4AA412831AD269D6D3457AE1B42340F8DD3BC91DA44340B9733AB780E9A49E7ED44F30E99A059BB2C68AEDE9D2FBE717761CD91F2DAD313EA2E4F0FDD9C1BBEB7980BCB6916E7E5EF763D93E6FA527FBB939B2E98E6A7E9BB8B4237E6D4F1A3F4C9717C03A8129B4106BF53C9B46827ED1676A6B7CB1D25CBCE74154DD0C634CD7D032D85909AF6AD75B487ADD55B9A5C435C4B018CB505E5048ADC5AAFDB2CB5BCD6916FAD219DD70EAE74D03C549164A3B96A7306B94C346F95D969CE9634570B9729C9E2EE3CA1E41EA173F59EC29A8AF2DAB313EBAECE0CBD393FFCEE52F182C6E3CDDCD996D2EC60FA9B1DD1CF36463E58258ED237E771FA6B4F8FAF393C928C4E17F72ECAB39896A98D448E3CCEB47E4EB02593A4964F17D29D4CD3FAACA3E58A338D6B2990B116A16CACC82DF7BAAD5257AE49439EB79637B872DD6061CDFA214E9A49E74DE9558AE60CA23953D1BC8D68DE9E65D15C2D68269D77E56A9715CD42E74D19D57B0A94CED766866E2F88DC5F16FD785DECCBAD6DA1D9C1F4175BA28FD670F439FD7557A4D1FC1C9DC7E722C7E0607A97645A0CDBC6B4DC6FF4F623E72BE71E675A3EAB18EA647AB00897530063CF7439A028B7E464DD06A6E5A58F3C6A1DB59E74E6E8F03612CD9B8655099AD39D3493CEDB865B3457EFA076DA69CE5534EF513457EF2DE037C84DAC3932B2F6CC047E760E0B9D97473F591FFB7ABB5B3A2BA3BFDC1AFD686DC432FAD4B89A4365DC5F3E3B3E0C3D24BD79C8D1CAC18B0D46CC85E665673AD3C9B45813B54492692135AD9E5C495C51418B25C2E58E2DCCF463B5BAFA91EB299A49E78D43AB36729789E6CDD4960CCA4EF370EE57354FD14C3AEFCA71D24C3AEFCDAF1115D4EC2BE044D61C2AAD3D3D8EA319BA3D5F9C9D3DD0591BBD8D1B1D7E7749E8D6DCBA4B536B4F8EAD3E50CCC1E5C31083D92B0666633AD7C1F44EBDE528A669BE5B3335D3F29904ADCC265A28213519BD413EFFC01515BC98672E77F425C3A496A020B7DA30A46A03779992E8D869DE9A216CDAC61B5ECDDB3E9C68CE72D29C2398DB9DAB69CEAB9134EF2B90F15BA8DE5F547B620CE792A319797749F4A375B1AFB679A173FC1CFDE11AF17AF41BB3EB2E4CAE39368A1F9FF9A4AC21C911CAD1DA98A6B9ECCCD64CD33EB47DB883E9AD72C74A77322D568F36395C51C18BB9E47247337257EA56325D2558416D6EE3104D33E9BC9974DE92AE69CEE03457F3B6DB69CE5284299A49E73DB935DCE538CDA4F37E5E21BF6541F6D19175E727866ECC0ABFBD38F2E1EAD8175BBDD35916FD7C73E4FD95E1B71686AECFAC3D3BBEE648191F2D1F0F8D4A322D0FF87972E47A8FC971324DF395D3175B14ED557265E24CCBE71C7A93C34515B458C045F6C46BD7A4DE3804B5BE4D44F3E661AA2DA4F3D68C6A9EA29974DE315CD34C3AEFCAB668AED94371E6F6E6699AF31582070A79FCBB6A0E95D49E7E3974757AF8CE82C8C315D1C79BBCD659FDF5BB4F3744EE2F0BBF39AFEEF2D4DA93636A0E14F123B018559CE97C27D3622E342FC9B47C9690E5607A3B2DCB36B144C434AD985C3DB998426A5C5A418AF986F25FFE795BF31F6B57A48E3F36508BDA4C3A6F11556F4DA732843E8AE64CA27938B96CD19C5DB33B47A468D63A3B68563AF3DBE7FCD51E2BAFBB38297473B67871E3E3751EBDF4DC88D15F6D157FA9E3EDC5A11BAFD49D9F505B3142EC28070BE5D8C420C568F5A62267B1476F398A699AB29A7E965A0DB9329A69BE68C4342DA3901AD755C062AEA3DC7688BD57BB8D52B78AE9CD43518BAAE62E5B346F4B279A339C3493CEBBB284CB8266D2794F4E9CE67DB27C219DA2B9A0F6602155C46FA1E650711D3F3E5F9B1EBEBB20F2FECAD8E79BFDD159BDD0F1D9C6C883E5E1DBF34257E421BA904F900F4C0C4F1AED605A3E0FA0A909A6691FDA2D266E635A3E9FD01B985CB16D726F138B494CE3D20A52AC8D2EFBCCB1DB6427E040ADDC41CF6CEB304D737AF5F60C11A76747A6A67978CDAE2CD1EE6CD51ED25912B64FEBBC9F74E62E0B9AB5CE878A789CB9DA6323EA2E4C0CBD312BF2CE6BD18FD7C6BED9E127D074885E1DBEB728F4FACCBA73E36B2B4A39B5726C7A1711C326A669166A52B99A699AAF9CBBD8A2C46AC895510B2598A675936BA89946018A2507CA6DC6DAEF0335E9839E9A8366D27967660D7759D04C3AEF269DF7583493CEFB48E7FDA2DAFDF9B507F235CD05B5870AA9A2DAC345FC96397C75A746F3D32B3FC3F2936CF4F1463F75966FD911FD747DE4BDA5E15B73429726D79E28E723E7631309A6B5D1C4B49888603ACFC9B47CC6A0B7A8DDB463ED1A2E5749EF67B480DBF55687EB2A5031EF51EEE0769E62EDEB815A3D6650C3B6CB04CD353C417326B94CED269DF7689DF75282E6DC5AE13275807456346B9D257F478AF98DD41E29A93BFB72E8FA8CF0BD85D10F57B9F88F065B60B4F8EB1C2BC2771784AE4EAB3B3D86BBCCE75B7BA448334D633EA8371839239A1D494DBB919CBB5A8A6CB532729504D3B46E3B6887934B8A4B2B50315751EE90B85CC7DABF0375CDF67454BF1DE9358A66D27917E9BCDBA29974DE9BAD69CEA9153493CE07649CE67C27CDA4F311A1B3007A6F4EEDB1B2D08509E19BB322EF26E0F50DFD2AC7B6E8A3D591B717D2AB1CE36A2B4AF81C6984459A6979EAD7461F94CF09F426C4A72C98965B142D88605A3EB7D09BD92E327A67865ACF1DB8BACCAD210EAC6D2E7730B50448DDF6D73D482544EDCC50ED229D776B9DF7507BB36B79C2656A3FE97C40EB7C90743E54A03A4C3A1F29AA1315D75588B86E7527CB43972785DF9C13B9BF34FAE98656BC599D0B407FB323FAF13ABE43F07D22747142DDF1119C5A39421AAD649AC66F4D47CECE9AAC9CBB5C8738D3B44A6AD186AB35B4961457970135D304D672973B042D57A4F6EF758FF8032995DB65D14C3AEFE165D5F2F66611CD5AE7FDA4F301ADF341D2F990D6F97041DDE1C2BA238502BB8A2205DF515E09FFD3BAD3A34357A784EFCC8B3C5C1EF3E5AF3F37F932F4FDA57C9FE0BB45DDC9917C167C78629062B47253291253104C6BA30FC9E707D6D305F9EC416F57FB68F7DA2B968BD64D322D9F85D0C2E2EA4A44AD3BB4B12445B9F5581B72A0568FA5944DB89C59CBDB335CB4374BB58F74DE9FA33A403A1FCC53099AF3EB84CBD411D2B9A2487594743E56C2ABE5BF7F764CF8FAB4C85BF3A31FAC887DB13921400BA31F6F8C3C5C16BE3397EF1675A74789F1F3114AA38F16AB914BA305D3342F69F4A1FCF8C4E53A58CB2257C95A345A43B9A435BB3352FDD2F22B57DE899E250AE5BFF8B367970452B7FD758F5AE954AAB547C669269DF7C938CDA4F30119A759E95C7788C769D63A1F219D2BB4CE4749E7634AE7BAE325FC3743E7C6865F9F1EB9B720FAC1CAD8175B1207F4A6E8FBCB2377E785AF4DAD3B335A9CFA8F97A8714AA38FEA0DA6423E1BD0DB0F9F2C9FF2216DF441F94C421BBD5F3ECFA075134CD33E27577537F22AD73F7B8F79E47273FC6D63BE61ED36D3AD915A839532EDCD249A872B62F66711CDD99AE69CBA83B9A24379AAC3A4F391025585D6F928754CEB7CBC2474BC84DF3E872F747E6CF80607FAD5E8872B635F260EE8CF25D0F3C3D7A786CE8EE604878E970AA305D3346C69F4516D7445A19AA3345A30AD1781D6C45A22B562FBF4F626D7736F66CA5D4B1EE7E9C75833575C6EA1ADED5B986F647BCBB43B076AF5304BF6F6C924CD59B507B2EB44DC6519A759EB7C98743EA275AED03A2B9A85CE21DE719ED03974A294277EF3FCCB0601FD9606BAA2508E508DF678B1DE5DE46653A8F71EB915D1C405D3DAE843B46FC955E2CB75403EE7A035144CD3AAEE452EE4A9CB76A03D42B9BD2F79E4B59F07EA5631BD6F7892B77F78DDFE2CD181AC3AA9B344E7500ED19C4B2E5347B4CE1514278C0A1D2BA224CDA4F309D2F9A488809627E80502E884BE06AD5EE2E0409F23A04F962AA34F28A345629B1133521394465768A38FE4C71744AECF41BD99A9BD2D4BAE275FD8E4BF783CCB1F94ED1F9FC25C12B9BD19B98BB5E9AF7BF0EA0464C9D8812CD5C16C4AD24C3A1F269D8FC8F2EB2A6405A1A3BC42D131ADB3A4ED4431D15C2269169D2AE307D2D0F931E1D7A745EED1FF24FC3C617F8B23F6D986E8C36591BB73C3D7A784CE8E12133955A6875AA2467E5C6F336AD72954333D2AB7255A01C1B4349A9648304D2B2698A635B4963459AF196FF207E2A662AD75B97D100AA2D4AD62DA7AEC254D0765D97587B215348773143D4473885791AF3A4A3A1F2B541D2FA224CDA4F34919A759E82CE25F767E74F8F5A991B7E645DF5F167B9CA0BF07FDED8ED8A7EBA20F9644EECC095F9B1C3A5BCEA9A511D250A5D18A699A8B9C9A345A314D73D74BA1F7AD5CB55687AD8D4DEE73B4AA07D0B34B08C70D3F3B85251DCA9E626D34D342EA835949D2A16C95703927C43B924B719765DC6519A759EB7C5CEB7CA248897652EB2CC93B551A3E5DC613DF756E54F8FA642E23F7912B99987F49F8F5B6E8C76BA2EF2D8EDC9E15BE3A317466249FA01AA11EB09E82B5DF14E91D486E48347DC134AD86609AD6472D57AE5C40925A2E6956F25C241EE4BFC84F67813DCBE5F6C9581BA536FD758FD0A1ECC07758C65D96E5862A72153D47F31446C7F2154FC70B759266D2F9A4AC247C8A572A3AAD740E9F29E3B7133E3B929BC865E43E463F5E1DFB2A11EFC5F1C5E6E8A355D17716466ECD0C5F1E1FE22E1FCEE1C353E33C5DAA467E4A1B7D521B7D421B7D5C1B7D4C1B7D541B5D91AB99A61D4E949D0CD786DBF929724BDF978DA592CBC195BA95178A662E801DC9D634E710CDB99AE63C4D33E97C5C56183A5128D90A9FE4158B4E1513CD25E1D3254473A9A4991AC16F56FCF2CAB8C8AD19D1775E8D7E988097A1C50BD08F37443F581EB9373FF2C6B4F0A5B1213EDAB323F8F0D438A5D182E9125DB19ADD49B90FD1C405D3B40E82695A19C134AD955ABADCF86206F792703B7F506EE3E7F0B1D443D975A94D675A486D3D3E0354852C37745496173A96A7003ACE2B08F34EF00A29497391A6B958D34C3A9F91917A5C4019FF9A4B63236F4C8DDC9B177D7FA9FFAF72C4BEDE16FB646DF4C16B91BB7322AF4F0E5F18CDB5D5C3B3F69252BDBBD05CA4D18A699AAF9A7E61981684A4B63630B99FD1EA09A6693D8FA47AE6A35C0F686FEDFBF33FFD95BB2597D4BE7E46A2262F201DCD91B8848FF1F244C7F3759266D2F9A4AC287CAA48D35CAC692ED134970AF25423C2E728FEED17CA23D72745EECC8ADE5F14FB68B5CF7F1B5AFC0DE8472BA3EF2E8CBC3933726D42F8DC483147393669B4CC9A823529354D9AB2609A5640304D6B22A496AB9427D72D74CCDAE47202760DB8940F87651751F60A68D72D4EA8DAC631EDE2813A7C3427001DCB5571688E6B9D4FE42B864E1628984E152AAA78A78B29EEB24CD2AC753E5716393742757EA4B8E5B36591ABE322B7A647DF991FFD6059ECB3F5BE1DA2C5F1F9D3B5D1874BA2F7E6456E4E8D5C1ECB07CC4725A21192D4D6A6228DA64909A38B55D6C44F5A1B95B57569A365D66206E247EF520144B93E0E2CA022FBE875EBA436FD7F242AA9ADC7AD811D97912F27F255270B749266D2F9B48CCC3A532C218B9CE595AA04CDA4F3791939786124FFAEC8A5D1911B93A3776747EF2F8E7DB4CA9F7FB112FB6E67ECF38D317E7C7E6F61F4CE2B91D727462E96F319F121D1D8689082E932953591B3D6DEA38D9673174CD36A48A3656AD1B4D1723D8F25795E1F96BDB3B8D158D2A0EC31D62E1FA80DF987E371A98FE71AD7895C81CB09D2F9A4AC207C4A46189D2E8C706165678A55674B74DC65191977BE4CEB3C423848F11B17BFBC363EFA261DA2C52BD16B7DF8EB1CB12FB7C43E59137DF85AF4DEDCC8AD6991AB2F8B715E28B706161FEA796DB49C0B192DE23B903565BD087C41F4A6656D63B46E6A19F3C4921E4FC202F20A466B3EE19A2525CA5E62EDDB81FA45FF0FD40AEBF8E339A19DCC8B88F245A778052AE1B28CBB2CE32ECB08AF73259AE6527259EB7C4146025EE4958BF8F75E1E1D796352F4EE2C7E9E8D3D5A117BBC3EF6CD766F5FDCF86C5DEC8365D1771744EFCC14C7E74BE5623A623C3430C5348D561A2DB32675CEDA84B4D1721D04D37A71D472D1D28935148B69CA4FD6A58C3F2C776C7B2CE951F6416A135EF7F042EA88223271495FA4CEA7658591333222E96C91A6B9985CD63A9F97916B1764E4DDC5110A411E6751C6FFF4DACBD15B53A3F7E6441F2C8E7DB452BCFEE0CD8BD14267BE013C5A11BDBF30FAD6ECE8CD2991AB63C580E5482CA345D68E42E31773D1F38ACFD4DA996829C49AD0E208A3F58AC5D7302FF13FD036E7C3DF594E08CA4DC9C052CA650FB076F3406D26D342EAF883DCDF4ECB089A33059AE642E591D4F99C5549E4BC8C14BB50AA692E239747444523459778E5AACBE5E206F97FBC3E217A7B7AF49D79B187AFC53E5E45466FF740E70D620378B038FAF69CE89BD3A2D7C7098B4F17F061E821D1F0E43869D871A345D6DE43339546CBE26B62ED61B46862F5F44A9E0A5EBEFDD33E3F516EFE67F2B144B8FC420B335FEA0EA970A056585B8F761F3A93AF94E17177ACCE15E98AA3BCF3BC12D585525D59F4A26C84EAD208C51FEF72B96E148F6317BD3A3AFAC6C4E8DD99D177E7C7DE97466FE0A4BAF7F9B05BC5D999EBFC7071F49DB96233B83141DCF5B9221A43793C6B909746C4072FE7C227654DD09AF279B108C434AD89345A66ADDE195ACCD3C1C8B737C1F0EDB0DCF20FE0D6401BA370EB32576A4398F64E6A5EF44CBEB79D2DD0158ACEC98A44E78BC865EA42898EE4BA58AA692E8B5E2A2397B5CE97659AC22BBC512AFE5DD7C6446F4EE246C7A4D11C534EEA575B62DFED6CEB3B227DB959BCEEFC6805D739C675BE33436C067C4BE063B60670C5325A8F531A2DB36624B236219AB5345A55A4D647AE955837BD865EFFB0DA90CFEF4CE403CAAD16B9DEC7A7303F39FEB33F696509F13A08AF7BB4E540FDA2BB8F041BA6AE764E46DC9C2F2497B5CE176484D4C512725977A94C47BA5D1E11578F77A55C47325E958D165F7F7D6CF4D6A498307A5EECE1A2D8A3E5B14FD7C4BED8285E9D68F9DBDDC5BEDD290ECEFC24FEC9EAD887CB620F16C6DE9913BD333D7A73A2D80CF838AFEA7B97405BD9477BD9DA60F4A4EC338D6F4EB41AD26895B5A5D11A9E35A584BC81A7D92837C902F342E45643ECB6DD385027406A81F5B902D73A5F68AB287A4146185D2C2697B5CE97AC48B1CB65E4B2EECA481D097855362ADEB5D1A2CBC2E898307A3AC734F6E0D5D8074B621FAF8C7DB65630CDB5FD7647B3DE64E39B1DE2E8FDF946E1FB472B621FBC16BBBF20F6F6ECD89D69B19B13C41DF171CA7BB48FE1AACD686BC0F6595CB6361E3DD9F80A68A345B44AD26855819B3F9496E4E7DBDBFBEFB2BB1CB711E8C473DC06AF1328B56F4C1B27B5C0DA216CCBBB6045E85C2C2297B5CE9754B14BA5A2CBBC32DD88D815AB91AAABBC72DDA8D8357BA3651CC1D8F5319C5181E9DBB362EFD151FAC3A58269AEEDE7EB635F6C12F8F233F537DBC5CB17FC982CDA217EC97F93FF11A7FCF17A45F3874B620F17C6DE9D1BBBF74AECF694D81BE3F97D7158ADBB8B0F808F273EB67231546BD872167C46F1D99589C9D2ACAD4520A6ADC5B136335ABDF37EE4FB078E78F17796BD70B9F59FEEC45A81B25122B7CAEB04336DD481DA37A965B10B852DEE22AF48571CBB242B515D2E2197B5CE57ACB4CE5747DA2A8F5DB3B2E97C7DB4237E53D747C5DE1817BB3D39F6163F4ACF8EDD9F2F9CE5A7E947CB49EAD5E24CFD789D80F8738AFF07FF25FFCD4F568B2F78B44C9C9AF9B770DFB9F2FC3CFEE6A4D88D97C5FDF2C1D7BB3BC73E4163B38C56D9371B3D4169B44AAFC625BD3E7CA1E28B56D89A656FBA44401CACC3B26B1F69CD9AE97280506E09D638503F53EA17BD7EB0D91C69A24B5644CFE56242D9AA347645A6E5BA5A26448B3732764D66D399FBEB88A07C5D3646C4EF887FCB8D31B15BFC283D8598E6A7E9B9B1070B48EAC5E268FC68A98038DE52F19BEF2F165FC0417F774EECED57C43772E56F8E17B7CC07236FFC757D5FCA68DB48EC83BCA6472E8DB68A6F427AEED26855719C696BE92EB62003FCF5E77DE3DC75B98317B1A4392C274A6A1398765D6A9F8FD50EAF2F1535D2E5227259EB7CC54A0B75B5945CB6E97C4D3632DEF5725B1AC4D747C5B9B4037D83E2B7CCBFF88DB1B15BE385B377A7C5EECD88BDF34AECDDD902EBFBF304C40F28FE1FFC97FC37F91F7197F997DD9D1ABB3D497C23BF1D7EEF7CB4F236EB19ADB2EF16B671DAC72F67A498B6265B1A5F046B59E26B556CA4B6897D334FA351AEF7549B798FF2F36EE729D63E4BEDE73B50776CDD059D9063354AC95E4C20CAFEBBFCD48FE16E00B49116FBA7B65B529BF0F2B44752036B64CE87F5F9EEB23F22D7C781055664AFBC76456A1F5FF7304A6A608D122BB25987E51659DC682CE128FFE9BF776408D62976A0EED8968704B0462DB53821EFADECCF61B98D22B70E6817E47537DFB04EDC81BA43220ED4DE610DAF531762DF3E7F2451876517456E3ED00671EC01D90990DADFD73D122C35BC4E4D853DFD803E6FFEE1B571283F1DE8C088EC9ED7A97BA0F64DEA67610DAF8321AF8F107BFAA67146A3DC28D07EA2DCAE85F98675ABA5FE55D00FD4CD96BAA38B8F3D90ED3FA9A62AECCF3B7906C6653BD01EA1DCCE973CC23A48AF7B244EEA8EEE3E2CFDA727654B84B9897ACF7B775F596EEF67DC07E692CBEDCCC85DA993FB40DDA139D777A2B006D9A64A9AB08F4F4DDC61D90F889B8AB516E57641C82DAC93FB40EDBAD41D939415E4F767A7FAF6A6717EBADC2210584B5C6E17E41228B5F99F15D002A98135F2F473AC138A7287848B5C1FE8A446B995581BC274E20ED41D9AFF0869F923108A01625FDFF3DEFFC3B28B9FEBC47C70F94FFE9D6B0551EAC4BDEEE18AD49E620DB293DF5F973E17CA8BF7C13014E5A68036CB627FD56E8BD4E6BFEEE1B7D46DC01A5E07495B8F3F3BD5A33727321DE57A407B2DF2736EE7A9D73E1FA813F969B66D90BA434B1F6C896502196FB1D76FE3D93E582EB71E687F2D76416DDFA5369F6977A5EED08A8722384B61853D79C3FB24382C37FAA929AC6D283F676A2E62ED1BD349207587D63D50015FD2C9EBC74790F8F0D730FCB4B8D158CB5D7E2E68B92275721FA8BD90BA435B1EC910D3606413F9197D4146F91916372A034B52949B8BB5C107EA5F25486A8FB0EE60181FC86888BD7B87651F5D6E31C74D029DD4289B23B5F99F15E08FD4F01A0A7BFB41248973F905773F7D9BA598CBCFC61A07EAE648ED36D6F03A25E44DF831391028370AF473A80D529BFE3F12DD93DA1FAC41760048F5F2E353DB07D4655750AE07345C4EACD4BE32EDAAD47E628D92986353DE99C81094ED1F9F02A053F440EDB6D4ED9B7AEC8127586CD41B781A8972932C00E804486D14D31E48DDFE290F4E10964A10FBFA26F7C1392CB7E003F900B40F527BF5BA4710A46EFFF4472FA44B0A8213F38123FEFCDD389F4506D001623A31076ACFA486D78103D714888376587EBE2DD97100D0EE486DC2EB1E5E48ED31D6C94FB6AB2CFA567BD3F2E79FF6F98FF233DF47134027E1EB1E8195FAD95EA324D0D6B47F72ED1BCAADF8906B009DD803F5F3813B50FB8B354AA17C7E67227F5C6E05CA003AB598F6546A608D0C7E0FCF04A0DC3691EBE300A053E57F24FA2035B04606BCAB72020ECBAE58DC68003A150FD43E480DAC61B18F0502E5D6BC1F3D804E32A6DB2EF50B1E3D8A6016204E31975DF8B854009DACAF7B982B35BC86C2C1FA3BCB3EA30CA071A036486A780D797D7F334F770FCBEDBC0B4027C9BF73F14BEA177C7B6442CFC0926AEC3B2C1BEAF2533EF31A4027DBEB1E5E489D70AC516A8A9C94283F85E3861F9F02A053F640EDAED4C01AF9FA617D3EBAEC83C84DB200A0939C69EFA406D6C8BB4FB30EFA61B9751C03E8D4FDAC004FA506D6A839167BF06EF7CF9BE3B22B2203E8543F507B2D35BC06C4DE7F22D4F386BC88E1BAC8001A07EA1649ED29D6203BF0FEFAF2D17C1EBD3F91A12803E85463DA14A9E17550B44D1CC43EBC699C8B2E7BFEA807D0A9F3BA47BBE65CBECD7E48BCE097D7C8BF7CC4D79DF7BC4FA6C33280C681DA0BA99F77FD810A28834F6D223F8524A08765000DA9BD96FAF980B8809255E4001F960134986E93D4C01A25E483537DFF6B18063DAE0134A4F6076B780D8813F39EF741741940436AD7A46E15D6F03A151576E3A3A1DA25D98B18001A4CFB27756BB186D7C923AFDB9FD4E7C55B6104E6F10BA071A036106B909D78521361B1D7EF4F14BC872D8086D43E61DD66AF51F241ECF27B2B2707CA001AB9F8EA472BB186D72946B0571F4192348765008DFC91BA5DAB1FBA3031B0E6FAFA8950C98D328046BE49DDAE8D0F6FB819A83CFC74BED4411940A3164BED12D6ED9245A214AF9D3F79F10ECB001AE1580DB2E12F4406D028498ED5F03A09B5F5F3A3A1003442FE638D92AA567F762A8046C84DACE1356ACBA75923008D8035F20762880CA05140B086D7C9AE302C06D02889BC06D941C31710036804AF91B7B64261008D509BBD469017402304B2412A02D0082184003442080168841042001A21840034420821008D104208402384108046082104A01142084023841002D0082104A01142080168841042001A21840034420821008D1042001A2184108046082104A01142084023841002D0082104A01142080168841042001A21840034420821008D1042001A21841080460821008D1042084023841002D0082104A01142080168841002D00821840034420821008D1042001A21841080460821008D104208402384108046082104A01142080168841002D008218400344208016884104209EAFF0355DC864BEF8CEF140000000049454E44AE426082');
|
||
|
||
-- ============================================================================
|
||
-- Settings
|
||
-- ============================================================================
|
||
|
||
-- Demo Access Token — log in programmatically with `Authorization: Bearer memos_pat_demo`.
|
||
-- Only the SHA-256 hash is stored; the prefix `memos_pat_` is the sole format requirement,
|
||
-- so a readable demo value works just as well as a random one.
|
||
INSERT INTO user_setting (user_id,key,value) VALUES(1,'PERSONAL_ACCESS_TOKENS','{"tokens":[{"tokenId":"demo-access-token","tokenHash":"7631cdaa5b56a39371dab01d5d186fd73f05602cc8ad29bf72ffef3713badd9d","description":"Demo access token","createdAt":"2024-01-01T00:00:00Z"}]}');
|
||
|
||
INSERT INTO system_setting VALUES ('MEMO_RELATED', '{"contentLengthLimit":8192,"enableAutoCompact":true,"enableComment":true,"enableLocation":true,"defaultVisibility":"PUBLIC","reactions":["👍","💛","🔥","👏","😂","👌","🚀","👀","🤔","🤡","❓","+1","🎉","💡","✅"]}', '');
|