← All skills
Tencent SkillHub Β· Developer Tools

Supabase Hakke

Supabase integration for Hakke Studio projects. Auth, database, storage, edge functions. Use with vercel skill for full-stack deployment.

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Supabase integration for Hakke Studio projects. Auth, database, storage, edge functions. Use with vercel skill for full-stack deployment.

⬇ 0 downloads β˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.1.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 34 sections Open source page

Supabase for Hakke Studio

Supabase integration especΓ­fica para proyectos de Hakke Studio.

Proyectos Actuales

ProyectoSupabase URLUsohakke-apphttps://[project].supabase.coSaaS multi-tenant

CLI Installation

# Supabase CLI (ya instalado) supabase --version # Si no estΓ‘ instalado npm install -g supabase

Login to Supabase

supabase login This opens browser for OAuth login with contacto@hakke.cl.

Link Project

cd /home/bastianberrios/proyectos/HAKKE/hakke-app supabase link --project-ref <project-id>

Generate Types

supabase gen types typescript --local > lib/supabase/database.types.ts

Create Migration

supabase migration new <migration_name>

Apply Migration

supabase db push

Reset Database (DEV ONLY)

supabase db reset

Get API Keys

supabase status Returns: anon key - Public key (client-side) service_role key - Secret key (server-side ONLY)

Create User (Admin)

-- In Supabase Dashboard SQL Editor INSERT INTO auth.users (email, encrypted_password, email_confirmed_at) VALUES ( 'user@example.com', crypt('password123', gen_salt('bf')), NOW() );

Enable RLS

ALTER TABLE users ENABLE ROW LEVEL SECURITY;

Create Policy

-- Users can only see their own data CREATE POLICY "Users can view own data" ON users FOR SELECT USING (auth.uid() = id); -- Users can update own data CREATE POLICY "Users can update own data" ON users FOR UPDATE USING (auth.uid() = id);

Create Bucket

-- In Supabase Dashboard SQL Editor INSERT INTO storage.buckets (id, name, public) VALUES ('avatars', 'avatars', false);

Storage Policy

-- Users can upload to own folder CREATE POLICY "Users can upload avatars" ON storage.objects FOR INSERT WITH CHECK ( bucket_id = 'avatars' AND auth.uid()::text = (storage.foldername(name))[1] );

Create Function

supabase functions new <function-name>

Deploy Function

supabase functions deploy <function-name>

Invoke Function

curl -i -L --request POST 'https://<project>.supabase.co/functions/v1/<function-name>' \ --header 'Authorization: Bearer <anon-key>' \ --header 'Content-Type: application/json' \ --data '{"name":"Functions"}'

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ hakke-app (SaaS) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ tenants table (multi-tenant) β”‚ β”‚ - id, slug, name, plan β”‚ β”‚ - owner_id (FK β†’ auth.users) β”‚ β”‚ - subscription_status β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ Row Level Security (RLS) β”‚ β”‚ - tenant_id = current_tenant() β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tenant Isolation

-- Function to get current tenant CREATE OR REPLACE FUNCTION current_tenant_id() RETURNS uuid AS $$ BEGIN RETURN (auth.jwt()->>'tenant_id')::uuid; END; $$ LANGUAGE plpgsql SECURITY DEFINER; -- RLS Policy example CREATE POLICY "Users can only see own tenant data" ON appointments FOR ALL USING (tenant_id = current_tenant_id());

Subscription Management

-- Check subscription status CREATE OR REPLACE FUNCTION has_active_subscription() RETURNS boolean AS $$ DECLARE tenant_record tenants%ROWTYPE; BEGIN SELECT * INTO tenant_record FROM tenants WHERE id = current_tenant_id(); RETURN tenant_record.subscription_status = 'active'; END; $$ LANGUAGE plpgsql SECURITY DEFINER;

List Tables

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

Describe Table

SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name = 'users';

Check RLS

SELECT schemaname, tablename, rowsecurity FROM pg_tables WHERE schemaname = 'public';

.env.local

NEXT_PUBLIC_SUPABASE_URL=https://<project>.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=<anon-key> SUPABASE_SERVICE_ROLE_KEY=<service-role-key>

.env.example (commit to git)

NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= SUPABASE_SERVICE_ROLE_KEY=

Server Client (Next.js)

// lib/supabase/server.ts import { createClient } from '@supabase/supabase-js'; import { cookies } from 'next/headers'; export function createServerClient() { const cookieStore = cookies(); return createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { auth: { persistSession: false, }, } ); }

Browser Client (Next.js)

// lib/supabase/client.ts import { createClient } from '@supabase/supabase-js'; export const supabase = createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! );

Connection Issues

# Check if Supabase is accessible curl -I https://<project>.supabase.co/rest/v1/ # Expected: 401 Unauthorized (means API is working, just need auth)

RLS Not Working

-- Check if RLS is enabled SELECT tablename, rowsecurity FROM pg_tables WHERE schemaname = 'public'; -- Check policies SELECT schemaname, tablename, policyname, permissive, roles, cmd, qual, with_check FROM pg_policies WHERE schemaname = 'public';

Auth Issues

# Check if user exists supabase auth list # Check logs supabase logs auth

Deploy with Vercel

# In hakke-app directory vercel # Add env vars in Vercel Dashboard or CLI vercel env add NEXT_PUBLIC_SUPABASE_URL vercel env add NEXT_PUBLIC_SUPABASE_ANON_KEY vercel env add SUPABASE_SERVICE_ROLE_KEY

Best Practices

PracticeWhyRLS always onSecurity firstService key server-onlyNever expose to clientType generationType-safe queriesMigrations in gitReproducible DBSeparate anon/service keysPrinciple of least privilege

Resources

Docs: https://supabase.com/docs Dashboard: https://supabase.com/dashboard CLI Reference: https://supabase.com/docs/reference/cli SQL Editor: Dashboard β†’ SQL Editor Logs: Dashboard β†’ Logs Supabase Hakke v1.1.0 - Production-ready for Hakke Studio

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs
  • SKILL.md Primary doc