Val Town Code SearchReturn to Val Town

API Access

You can access search results via JSON API by adding format=json to your query:

https://codesearch.val.run/?q=database&page=1&format=json

For typeahead suggestions, use the /typeahead endpoint:

https://codesearch.val.run/typeahead?q=database

Returns an array of strings in format "username" or "username/projectName"

Found 10131 results for "database"(933ms)

Upstash300 words

https://docs.val.town/integrations/databases/upstash/
Section titled “Create an Upstash account” Go to https://console.upstash.com/login. Create a database. Section titled “Create a database” Click Create database. Name: whatever you want. Type: Regional. Region: Iowa (us-central1), because

Sections

Upstash

plain text. Open in ChatGPT Ask questions about this page. Upstash provides a serverless Redis database, which can be used as a key-value store of up to 1mb with a

Create a database

Create a database. Section titled “Create a database” Click Create database. Name: whatever you want. Type: Regional. Region: Iowa (us-central1), because it’s closest to Val Town’s servers. Enable TLS for

Set some data

to Run this Val and have it return the same results from your own Upstash database. Saving dataRun in Val Town ↗ import { Redis } from "npm:@upstash/redis"; const redis

PlanetScale358 words

https://docs.val.town/integrations/databases/planetscale/
Go to https://auth.planetscale.com/sign-up. 2. Create a new database. Section titled “2. Create a new database” Select New database on the dashboard. Create a database. 3. Create a password. Section titled

Sections

PlanetScale

text. Open in ChatGPT Ask questions about this page. PlanetScale once provided a hosted MySQL database with 5GB of storage included in the free tier. On April 8, 2024, the

2. Create a new database

2. Create a new database. Section titled “2. Create a new database” Select New database on the dashboard. Create a database.

7. Do more than queries!

7. Do more than queries! Section titled “7. Do more than queries!” Read the source of the @vtdocs/queryPlanetScale helper, see how it uses the @planetscale/database SDK, refer to the driver’s

SQLite168 words

https://docs.val.town/std/sqlite/
Ask questions about this page. SQLite is a lightweight, standard database. Every Val Town account comes with its own private SQLite database that is accessible from any of your vals

Sections

SQLite

Ask questions about this page. SQLite is a lightweight, standard database. Every Val Town account comes with its own private SQLite database that is accessible from any of your vals

SQLite Admin Panels

SQLite Admin Panels. Section titled “SQLite Admin Panels” We recommend these admin data viewers for managing your database – viewing or editing data or your database table schema: Outerbase Studio

Supabase667 words

https://docs.val.town/integrations/databases/supabase/
a note of your database password, you’ll need this to create a database connection string. 3. Get your database’s connection string. Section titled “3. Get your database’s connection string” Go

Sections

Supabase

plain text. Open in ChatGPT Ask questions about this page. Supabase provide a hosted Postgres database with 500MB of storage in the free tier. You can query and create data

2. Create a project

Supabase’s dashboard, create a new project. Keep a note of your database password, you’ll need this to create a database connection string.

3. Get your database’s connection string

Get your database’s connection string. Section titled “3. Get your database’s connection string” Go to your project’s Settings via the sidebar. Inside Database, scroll down and copy the Connection string

7. More resources

7. More resources. Section titled “7. More resources” Learn more about the Deno Postgres client used in this guide, view the Supabase Database documentation, or get help on Val Town’s

Neon Postgres283 words

https://docs.val.town/integrations/databases/neon-postgres/
this page. Neon provides a PostgreSQL database with an API accessible over HTTP and a JavaScript SDK. This lets you use a more conventional relational database model in your vals.

Sections

Neon Postgres

this page. Neon provides a PostgreSQL database with an API accessible over HTTP and a JavaScript SDK. This lets you use a more conventional relational database model in your vals.

Setup

Fill out the fields: Name: Any. Postgres version: If you need to use the database with other software, 14 provides better compatibility. Else, use the default of 15. Region: Choose

Overview103 words

https://docs.val.town/api/
API allows you to programmatically manage your account and its resources: vals, blob storage, sqlite databases, likes, comments, and more. Tip Val Town’s REST API should not be confused with

Sections

Overview

API allows you to programmatically manage your account and its resources: vals, blob storage, sqlite databases, likes, comments, and more. Tip Val Town’s REST API should not be confused with

ORMs206 words

https://docs.val.town/std/sqlite/orms/
that only exists in a classic server environment. Sequelize. Section titled “Sequelize” 🚫 Sequelize isn’t supported in Val Town because it relies on specific database drivers and is not extensible.

Sections

Sequelize

Sequelize. Section titled “Sequelize” 🚫 Sequelize isn’t supported in Val Town because it relies on specific database drivers and is not extensible.

Authentication294 words

https://docs.val.town/api/authentication/
val – vals. user – user account details. blob – blob storage. sqlite – sqlite database. email – ability to send emails. You can configure the scopes on the API

Sections

Scopes

Scopes. Section titled “Scopes” Val Town API tokens are scoped to read/write scopes for: val – vals. user – user account details. blob – blob storage. sqlite – sqlite database.

Stripe741 words

https://docs.val.town/integrations/stripe/
listens for successful payment events from Stripe. You can use this webhook to update your database to authorize the user to view premium content or send a confirmation email to

Sections

Stripe

listens for successful payment events from Stripe. You can use this webhook to update your database to authorize the user to view premium content or send a confirmation email to

2. Handle Fulfillment

the product to them. If you are selling a subscription, this might mean updating your database to authorize the user to view premium content. You can listen for events from

Saving data from a web page521 words

https://docs.val.town/guides/saving-data-from-a-web-page/
store for storing files, JSON, images, large blobs of data, while SQLite is a SQL database with ACID transactions, indexes, and more. You can also use external services like Firebase,

Sections

Saving data from a web page

store for storing files, JSON, images, large blobs of data, while SQLite is a SQL database with ACID transactions, indexes, and more. You can also use external services like Firebase,
84
85### **Service Layer** (External Integrations)
86- Handles external API calls (Notion, databases)
87- Manages data persistence
88- Returns structured results with success/error information
108- `GET /glimpse/login` - User-specific login redirect
109 - Requires user authentication (Google OAuth via LastLogin)
110 - Looks up authenticated user's email in `GLANCE_DEMOS_DB_ID` database
111 - If user found: Redirects to user's personal path (from Path property)
112 - If user not found: Creates new user record and redirects to `/glimpse/thanks`
113 - Shows detailed error information for debugging database structure issues
114
115- `GET /glimpse/thanks` - New user welcome page
213
2141. **Authentication**: User must be authenticated via Google OAuth (handled by LastLogin)
2152. **Database Lookup**: System queries `GLANCE_DEMOS_DB_ID` database for user's email
2163. **User Creation**: If not found, creates new user record with email address
2174. **Welcome Page**: Redirects to `/glimpse/thanks` with next steps information
2196. **User Return**: User can return to `/glimpse/login` once URL is configured
220
221### Database Requirements for Login
222
223The `GLANCE_DEMOS_DB_ID` database must contain:
224- **Email property**: Contains user's email address (exact match with authenticated email)
225- **Path property**: Contains user's redirect path in format `/glimpse/:id` (optional for new users)
231The login endpoint provides detailed error information for debugging:
232- Missing environment variables
233- Database query failures
234- User creation failures (falls back to access denied page)
235- Invalid or missing Path properties
2732. Retrieves page properties to extract Assigned and Viewing properties
2743. **Checks if Viewing property is true** - if not, skips assignment and logs result
2754. Queries `GLANCE_AGENTS_DB_ID` database for agents with matching Assigned property
2765. **STEP 1: Clear Current Demo Blob** - Immediately clears the agent blob for this demo
2776. **STEP 2: Find New Agents** - Queries agents database by Assigned property
2787. **STEP 3: Collect Agent Data** - Fetches complete agent information and validates
2798. **STEP 4: Clear Agents from Other Demo Blobs** - Removes agents from any other demo blobs to prevent double-assignment
283- **Immediate Updates**: Agent blob is updated immediately for fast frontend response
284- **Multi-Blob Clearing**: Ensures agents only appear in one demo blob at a time
285- **Eventual Consistency**: Cron jobs handle Notion database cleanup in the background
286- **No Manual Unassignment**: Assignments are cleared automatically when `Viewing = false`
287- **Reliable**: Blob operations are simpler and more reliable than complex relation management
325- Page must have a **Viewing property set to true** (assignment only occurs for actively viewed pages)
326- Page must have an Assigned property with assigned person
327- Agents database must have pages with Assigned properties matching the assigned person
328- Original page must have a "Glimpse agents" relation property
329- Agent pages must have a "Glimpse demos" relation property
394
395**Performance Benefits:**
396- **Fast Execution**: Blob scanning is faster than database queries
397- **Targeted Processing**: Only processes pages with empty agent arrays
398- **Resource Efficient**: Minimal API calls to Notion
433
434Configure these environment variables for full functionality:
435- `GLANCE_DEMOS_DB_ID` - Notion database ID for demos
436- `GLANCE_CONTENT_DB_ID` - Notion database ID for content
437- `GLANCE_INTERACTIONS_DB_ID` - Notion database ID for interactions
438- `GLANCE_AGENTS_DB_ID` - Notion database ID for agents
439- `NOTION_API_KEY` - Notion API key for database access
440- `NOTION_WEBHOOK_SECRET` - Secret key for webhook authentication
441
452### **Blob Storage + Notion Sync**
453- **Fast blob updates**: Page viewing status stored in Val Town blob storage for instant response (~100ms)
454- **Immediate Notion sync**: When users start viewing pages, Notion database is updated immediately
455- **Automatic cleanup**: Cron job runs every minute to mark stale sessions (>1 minute old) as not viewing
456
517- **Content**: Must exactly match the authenticated user's email address
518
519### **Notion Database Schema**
520Pages in your Notion databases should include these properties for viewing analytics:
521- **Email** (Email or Rich Text) - **Required** for authorization
522- **Session start** (Date) - **Primary viewing status**: Currently viewing + when session began

vt-sqlite-drizzlemigrations.ts1 match

@nbbaier•Updated 15 hours ago
3
4export async function createTables() {
5 // Uncomment to reset database
6 await db.run(sql`DROP TABLE IF EXISTS messages`);
7 // Create messages table

customer-database-setup2 file matches

@stevenvapi•Updated 2 months ago

prDatabase

@pdw•Updated 2 months ago