Official TypeScript/JavaScript SDK for InsForge - A powerful, open-source Backend-as-a-Service (BaaS) platform.
- Authentication - Email/password, OAuth (Google, GitHub), session management
- Database - Full PostgreSQL database access with PostgREST
- Storage - File upload and management with S3-compatible storage
- Edge Functions - Serverless function invocation
- AI Integration - Built-in AI capabilities
- TypeScript - Full TypeScript support with type definitions
- Automatic OAuth Handling - Seamless OAuth callback detection
npm install @insforge/sdkOr with yarn:
yarn add @insforge/sdkimport { createClient } from '@insforge/sdk';
const insforge = createClient({
baseUrl: 'http://localhost:7130' // Your InsForge backend URL
});// Sign up a new user
const { data, error } = await insforge.auth.signUp({
email: 'user@example.com',
password: 'securePassword123',
name: 'John Doe' // optional
});
// Sign in with email/password
const { data, error } = await insforge.auth.signInWithPassword({
email: 'user@example.com',
password: 'securePassword123'
});
// OAuth authentication (Google, GitHub)
await insforge.auth.signInWithOAuth({
provider: 'google',
redirectTo: 'http://localhost:3000/dashboard'
});
// Get current user
const { data: user } = await insforge.auth.getCurrentUser();
// Sign out
await insforge.auth.signOut();// Insert data
const { data, error } = await insforge.database
.from('posts')
.insert([
{ title: 'My First Post', content: 'Hello World!' }
]);
// Query data
const { data, error } = await insforge.database
.from('posts')
.select('*')
.eq('author_id', userId);
// Update data
const { data, error } = await insforge.database
.from('posts')
.update({ title: 'Updated Title' })
.eq('id', postId);
// Delete data
const { data, error } = await insforge.database
.from('posts')
.delete()
.eq('id', postId);// Upload a file
const file = document.querySelector('input[type="file"]').files[0];
const { data, error } = await insforge.storage
.from('avatars')
.upload(file);
// Download a file
const { data, error } = await insforge.storage
.from('avatars')
.download('user-avatar.png');
// Delete a file
const { data, error } = await insforge.storage
.from('avatars')
.remove(['user-avatar.png']);
// List files
const { data, error } = await insforge.storage
.from('avatars')
.list();// Invoke an edge function
const { data, error } = await insforge.functions.invoke('my-function', {
body: { key: 'value' }
});// Generate text completion
const { data, error } = await insforge.ai.completion({
model: 'gpt-3.5-turbo',
prompt: 'Write a hello world program'
});
// Analyze an image
const { data, error } = await insforge.ai.vision({
imageUrl: 'https://example.com/image.jpg',
prompt: 'Describe this image'
});For complete API reference and advanced usage, see:
- SDK Reference - Complete API documentation
- InsForge Main Repository - Backend platform and setup guides
The SDK supports the following configuration options:
const insforge = createClient({
baseUrl: 'http://localhost:7130', // Required: Your InsForge backend URL
storageStrategy: 'localStorage' // Optional: 'localStorage' or 'memory' (default: 'localStorage')
});The SDK is written in TypeScript and provides full type definitions:
import { createClient, InsForgeClient, User, Session } from '@insforge/sdk';
const insforge: InsForgeClient = createClient({
baseUrl: 'http://localhost:7130'
});
// Type-safe API calls
const response: { data: User | null; error: Error | null } =
await insforge.auth.getCurrentUser();All SDK methods return a consistent response format:
const { data, error } = await insforge.auth.signUp({...});
if (error) {
console.error('Error:', error.message);
console.error('Status:', error.statusCode);
} else {
console.log('Success:', data);
}The SDK works in all modern browsers that support:
- ES6+ features
- Fetch API
- LocalStorage (for session management)
For Node.js environments, ensure you're using Node.js 18 or higher.
We welcome contributions! Please see our Contributing Guide for details.
# Clone the repository
git clone https://github.com/InsForge/insforge-sdk-js.git
cd insforge-sdk-js
# Install dependencies
npm install
# Build the SDK
npm run build
# Run tests
npm test
# Run integration tests
npm run test:integrationThis project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- GitHub Issues: Report bugs or request features
- Documentation: https://docs.insforge.com
- Main Repository: InsForge Backend Platform
- InsForge - The main InsForge backend platform
- InsForge MCP - Model Context Protocol server for InsForge
Built with ❤️ by the InsForge team