Appwrite

Appwrite client configuration and utilities for authentication and database operations.

createSessionClient

Creates an Appwrite client with user session.

const { account } = await createSessionClient()

// Use the session client
const user = await account.get()

// Throws error if no session exists
try {
  const client = await createSessionClient()
} catch (error) {
  console.error("No session found")
}

createAdminClient

Creates an Appwrite client with admin privileges.

const { account, database, user } = await createAdminClient()

// Use the admin client
const users = await database.listDocuments(
  DATABASE_ID,
  USER_COLLECTION_ID,
  [Query.equal("status", "active")]
)

// Create a new user
const newUser = await account.create(
  ID.unique(),
  "user@example.com",
  "password123",
  "John Doe"
)

Configuration

Required environment variables and configuration.

// Environment Variables
NEXT_PUBLIC_APPWRITE_ENDPOINT=
NEXT_PUBLIC_APPWRITE_PROJECT=
NEXT_APPWRITE_KEY=
APPWRITE_DATABASE_ID=
APPWRITE_USER_COLLECTION_ID=
APPWRITE_BANK_COLLECTION_ID=
APPWRITE_TRANSACTION_COLLECTION_ID=

// Client Configuration
const client = new Client()
  .setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT!)
  .setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT!)
  .setKey(process.env.NEXT_APPWRITE_KEY!)

Features

Session Management

Automatic session handling with cookie-based authentication.

Admin Operations

Full access to Appwrite services with admin privileges.

Type Safety

Full TypeScript support for all Appwrite operations.

Server-Side Integration

Designed for server-side operations in Next.js applications.