@univ-lehavre/atlas-appwrite
v1.0.2
Published
Shared Appwrite client utilities for Atlas applications
Downloads
108
Readme
@univ-lehavre/atlas-appwrite
Utilitaires Appwrite serveur pour les applications Atlas.
About
Ce package crée des clients Appwrite admin ou sessionnés à partir de la configuration serveur et du cookie SvelteKit session. Il expose aussi des constantes de session/admin et des helpers pour les opérations utilisateur utilisées par les services d'authentification Atlas.
Features
- Admin Client: Client with full access to the Appwrite API
- Session Client: Client configured with the user session
- User Repository: Abstraction for user retrieval
- Cookie Management: Utilities for session management via cookies
Installation
pnpm add @univ-lehavre/atlas-appwriteUsage
Admin Client
import { createAdminClient } from '@univ-lehavre/atlas-appwrite';
const config = {
endpoint: process.env.APPWRITE_ENDPOINT,
projectId: process.env.APPWRITE_PROJECT,
apiKey: process.env.APPWRITE_KEY,
};
const { account, users, databases } = createAdminClient(config);
// Retrieve a user
const user = await users.get({ userId: 'user123' });Session Client
import { createSessionClient, SESSION_COOKIE } from '@univ-lehavre/atlas-appwrite';
// In a SvelteKit endpoint
export const GET = async ({ cookies }) => {
const config = {
endpoint: process.env.APPWRITE_ENDPOINT,
projectId: process.env.APPWRITE_PROJECT,
};
const { account } = createSessionClient(config, cookies);
const user = await account.get();
return json({ user });
};User Repository
import { createUserRepository } from '@univ-lehavre/atlas-appwrite';
const userRepo = createUserRepository({
endpoint: process.env.APPWRITE_ENDPOINT,
projectId: process.env.APPWRITE_PROJECT,
apiKey: process.env.APPWRITE_KEY,
});
const user = await userRepo.getById('user123');API
Functions
| Function | Description |
|----------|-------------|
| createAdminClient(config) | Creates an Appwrite admin client |
| createSessionClient(config, cookies) | Creates an Appwrite session client |
| createUserRepository(config) | Creates a user repository |
Constants
| Constant | Description |
|----------|-------------|
| SESSION_COOKIE | Session cookie name ('session') |
| ADMIN_LABEL | Appwrite label for administrators ('admin') |
Exported Types
Re-exported Appwrite types: Models, Account, Users, Databases, Client, ID
Scripts
pnpm -F @univ-lehavre/atlas-appwrite dev # Development
pnpm -F @univ-lehavre/atlas-appwrite build # Build
pnpm -F @univ-lehavre/atlas-appwrite test # Tests
pnpm -F @univ-lehavre/atlas-appwrite lint # ESLintDocumentation
Organization
This package is part of Atlas, a set of tools developed by Le Havre Normandie University to facilitate research and collaboration between researchers.
Atlas is developed as part of two projects led by Le Havre Normandie University:
- Campus Polytechnique des Territoires Maritimes et Portuaires: research and training program focused on maritime and port issues
- EUNICoast: European university alliance bringing together institutions located in European coastal areas
License
MIT
