Guide de configuration des Spaces

Apprenez à créer et configurer des espaces de travail où vos agents IA peuvent lire des fichiers, écrire du code et gérer des projets.

Table des matières

Ce que vous allez apprendre

À la fin de ce guide, vous saurez comment :

  • ✅ Créer des espaces de travail isolés pour les agents
  • ✅ Télécharger et gérer des fichiers
  • ✅ Configurer des variables d’environnement de manière sécurisée
  • ✅ Définir la structure du projet
  • ✅ Contrôler les accès et permissions
  • ✅ Travailler avec un stockage persistant

Temps nécessaire : 15-20 minutes

Prérequis

Avant de commencer, assurez-vous d’avoir :

Comprendre les Spaces

Que sont les Spaces ?

Les Spaces sont des environnements de système de fichiers isolés où les agents IA peuvent :

  • Lire et écrire des fichiers
  • Exécuter du code et des commandes
  • Stocker des données persistantes
  • Travailler avec des dépôts Git
  • Accéder aux variables d’environnement

Considérez un space comme un espace de travail virtuel pour vos agents - comme un dossier de projet survitaminé.

Screenshot

Fonctionnalités clés

Isolation

  • Chaque space a son propre système de fichiers
  • Les agents ne peuvent pas accéder aux fichiers d’autres spaces
  • Multi-location sécurisée

Persistance

  • Les fichiers survivent entre les exécutions d’agents
  • Sauvegarde automatique sur stockage S3
  • Contrôle de version avec Git

Flexibilité

  • Commencer de zéro (space vide)
  • Cloner un dépôt Git existant
  • Utiliser des modèles de démarrage

Collaboration

  • Partager des spaces avec les membres de l’équipe
  • Plusieurs agents peuvent travailler dans le même space
  • Synchronisation de fichiers en temps réel

Cas d’usage des Spaces

Développement logiciel

Space : "Projet API Backend"
- Cloner un dépôt Git
- Les agents examinent et écrivent du code
- Commiter les changements dans le dépôt
- Exécuter les tests et la compilation

Analyse de données

Space : "Analyse des ventes Q1"
- Télécharger des jeux de données CSV
- Exécuter des scripts d'analyse Python
- Générer des visualisations
- Stocker les résultats et rapports

Création de contenu

Space : "Pipeline de contenu Blog"
- Rédiger des articles en Markdown
- Itérer avec les retours de l'agent
- Stocker les images et ressources
- Publier le contenu final

Scripts d’automatisation

Space : "Utilitaires DevOps"
- Stocker les scripts d'automatisation
- Fichiers de configuration
- Manifestes de déploiement
- L'agent exécute les tâches

Créer un Space

Méthode 1 : Via l’interface (Recommandé)

Étape 1 : Accéder aux Spaces

  1. Connectez-vous à TeamDay
  2. Cliquez sur “Spaces” dans la barre latérale
  3. Cliquez sur le bouton ”+ New Space”

Screenshot

Étape 2 : Configurer les paramètres de base

Nom du Space :

  • Descriptif et spécifique
  • 1-100 caractères
  • Exemples :
    • ✅ “API Backend Client”
    • ✅ “Contenu Site Marketing”
    • ❌ “Space 1”, “Test”, “Espace de travail”

Description (Optionnel) :

  • Aperçu bref du but du space
  • Aide les membres de l’équipe à comprendre le contexte
  • Exemple : “API backend pour système de gestion client construit avec Node.js et PostgreSQL”

Screenshot

Étape 3 : Choisir le type d’initialisation

Option A : Espace de travail vide

Idéal pour : Démarrer un nouveau projet de zéro

Ce que vous obtenez :

  • Répertoire vide
  • Dépôt Git initialisé
  • Fichier d’instructions CLAUDE.md par défaut
  • Prêt pour le travail de l’agent

Cliquez sur “Create Empty Space”

Screenshot

Option B : Cloner un dépôt Git

Idéal pour : Travailler avec des bases de code existantes

Requis :

  • URL du dépôt Git (HTTPS ou SSH)
  • Identifiants d’accès (pour dépôts privés)

Étapes :

  1. Sélectionnez “Clone from Git”
  2. Entrez l’URL du dépôt
    https://github.com/username/repository.git
  3. (Optionnel) Spécifiez la branche
    • Par défaut : main ou master
    • Exemple : develop, staging
  4. Cliquez sur “Clone Repository”

Screenshot

Option C : Utiliser un modèle de démarrage

Idéal pour : Configuration rapide de projet avec bonnes pratiques

Modèles disponibles :

  • Nuxt - Framework Vue full-stack
  • Next.js - Framework React
  • Vue - Framework frontend
  • React - Bibliothèque frontend
  • Express - Backend Node.js
  • FastAPI - Backend Python

Chaque modèle inclut :

  • Boilerplate du projet
  • Dépendances configurées
  • CLAUDE.md avec instructions du projet
  • Structure de fichiers avec bonnes pratiques

Sélectionnez le modèle et cliquez sur “Create from Template”

Screenshot

Étape 4 : Définir la visibilité

Contrôlez qui peut accéder à votre space :

Privé (Par défaut)

  • Seulement vous pouvez accéder
  • Idéal pour : Projets personnels, expérimentations
  • Accès agent : Seulement les agents que vous assignez

Organisation

  • Tous les membres de l’organisation peuvent accéder
  • Idéal pour : Collaboration d’équipe
  • Accès agent : Tous les agents de l’org disponibles

Public

  • Quiconque avec le lien peut voir (lecture seule)
  • L’exécution nécessite l’adhésion à l’org
  • Idéal pour : Démos, open source, vitrines

Screenshot

Étape 5 : Créer le Space

Cliquez sur “Create Space”

Processus d’initialisation :

  1. Création du système de fichiers
  2. Initialisation de Git (si applicable)
  3. Clonage du dépôt / configuration du modèle (si applicable)
  4. Configuration de la synchronisation S3
  5. Prêt ! ✅

Progression affichée dans l’interface. Prend généralement 10-30 secondes.

Screenshot

Étape 6 : Accéder à votre Space

Une fois prêt, vous verrez :

  • Onglet Files - Parcourir et gérer les fichiers
  • Onglet Chat - Interagir avec les agents dans ce space
  • Onglet Settings - Configurer les options du space
  • Onglet History - Historique des commits Git

Screenshot

Méthode 2 : Via API

Créer un Space vide :

curl -X POST "https://us.teamday.ai/api/v1/spaces" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "API Backend Client",
    "description": "API backend pour gestion client",
    "visibility": "organization",
    "type": "empty"
  }'

Cloner un dépôt Git :

curl -X POST "https://us.teamday.ai/api/v1/spaces" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Projet existant",
    "type": "git",
    "gitUrl": "https://github.com/username/repo.git",
    "gitBranch": "main"
  }'

Utiliser un modèle de démarrage :

curl -X POST "https://us.teamday.ai/api/v1/spaces" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nouvelle app Nuxt",
    "type": "starterKit",
    "starterKit": "nuxt"
  }'

Réponse :

{
  "id": "s-abc123xyz",
  "name": "API Backend Client",
  "description": "API backend pour gestion client",
  "visibility": "organization",
  "status": "initializing",
  "organizationId": "org_xyz789",
  "createdAt": "2025-01-15T10:00:00Z",
  "s3Bucket": "teamday-workspaces",
  "s3Prefix": "org_xyz789/spaces/s-abc123xyz/"
}

Surveiller le statut d’initialisation :

curl -X GET "https://us.teamday.ai/api/v1/spaces/s-abc123xyz" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN"

Attendez status: "ready" avant d’utiliser le space.

Travailler avec des fichiers

Structure du système de fichiers

Chaque space inclut :

/data/sandbox/{orgId}/spaces/s-{spaceId}/
├── CLAUDE.md           # Instructions pour l'agent (auto-généré)
├── .git/               # Dépôt Git
├── .gitignore          # Ignores standards
└── ...vos fichiers...

Le fichier CLAUDE.md

Instructions auto-générées pour les agents travaillant dans ce space :

# Projet : API Backend Client

API backend pour système de gestion client

## Contexte

Ceci est un espace de travail TeamDay pour : Développement backend
Organisation : Acme Corp
ID du Space : s-abc123xyz
Créé : 2025-01-15

## Directives

Lors du travail dans ce space :
- Suivre les modèles de code existants
- Écrire des messages de commit clairs
- Tester avant de commiter
- Documenter les changements significatifs

## Fichiers

[Agent : Utilisez l'outil filesystem pour explorer les fichiers]

Personnaliser CLAUDE.md pour ajouter des instructions spécifiques au projet :

# Projet API Client

## Stack technique
- Node.js 20+ avec TypeScript
- Express.js pour le framework API
- Base de données PostgreSQL
- Authentification JWT

## Normes de code
- Utiliser le mode strict TypeScript
- Suivre le guide de style Airbnb
- Longueur max de fonction : 50 lignes
- Écrire des commentaires JSDoc pour les fonctions publiques

## Tests
Exécuter les tests avant de commiter :
```bash
bun test

Commandes courantes

Développement

bun run dev     # Démarrer le serveur dev (port 3000)
bun run build   # Compiler pour production

Base de données

bun run migrate    # Exécuter les migrations
bun run seed       # Initialiser les données de test

![Screenshot](./images/space-setup/claude-md.png)

### Télécharger des fichiers

**Via l'interface :**

1. Ouvrir le space → Onglet **Files**
2. Cliquer sur le bouton **"Upload Files"**
3. Sélectionner les fichiers depuis votre ordinateur
   - Max 20 fichiers à la fois
   - Max 100MB par fichier
4. Choisir le répertoire de destination (par défaut : racine)
5. Cliquer sur **"Upload"**

Les fichiers apparaissent immédiatement dans l'explorateur de fichiers.

![Screenshot](./images/space-setup/upload-files.png)

**Via CLI :**

```bash
# Télécharger un seul fichier
teamday spaces upload s-abc123xyz \
  --file data.csv \
  --dest /data/

# Télécharger plusieurs fichiers
teamday spaces upload s-abc123xyz \
  --files config.json,schema.sql,README.md \
  --dest /

# Télécharger un répertoire
teamday spaces upload s-abc123xyz \
  --directory ./src \
  --dest /src

Via API :

curl -X POST "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/files" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -F "[email protected]" \
  -F "path=/data/data.csv"

Lire des fichiers

Via l’agent :

Demandez à votre agent de lire des fichiers :

Utilisateur : "Montre-moi le contenu de package.json"

Agent : [Utilise l'outil filesystem pour lire le fichier]
Utilisateur : "Quels fichiers sont dans le répertoire src/ ?"

Agent : [Liste le contenu du répertoire]

Screenshot

Via l’interface :

  1. Accéder à l’onglet Files
  2. Cliquer sur n’importe quel fichier
  3. Voir le contenu dans l’éditeur intégré

Via API :

curl -X GET "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/files?path=/package.json" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN"

Écrire des fichiers

Via l’agent :

Les agents peuvent créer et modifier des fichiers :

Utilisateur : "Créer un nouveau fichier src/utils/helpers.ts avec des fonctions utilitaires courantes"

Agent : [Crée le fichier avec du contenu]
Utilisateur : "Mettre à jour src/api/users.ts pour ajouter la validation des entrées"

Agent : [Lit le fichier, effectue les changements, réécrit]

Screenshot

Via l’interface :

  1. Cliquer sur le bouton “New File”
  2. Entrer le nom et le chemin du fichier
  3. Écrire le contenu dans l’éditeur
  4. Cliquer sur “Save” (ou Cmd/Ctrl+S)

Via API :

curl -X POST "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/files" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "path": "/src/utils/helpers.ts",
    "content": "export function formatDate(date: Date): string {\n  return date.toISOString();\n}"
  }'

Télécharger des fichiers

Via l’interface :

  1. Accéder à l’onglet Files
  2. Clic droit sur le fichier → Download
  3. Ou sélectionner plusieurs → Download as ZIP

Via CLI :

# Télécharger un seul fichier
teamday spaces download s-abc123xyz \
  --file src/app.ts \
  --output ./app.ts

# Télécharger l'ensemble du space
teamday spaces download s-abc123xyz \
  --all \
  --output backup.zip

Via API :

curl -X GET "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/files/download?path=/src/app.ts" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -o app.ts

Supprimer des fichiers

Via l’agent :

Utilisateur : "Supprimer les anciens fichiers de test dans /tests/deprecated/"

Agent : [Supprime les fichiers]

Via l’interface :

  1. Sélectionner le(s) fichier(s) dans l’explorateur
  2. Cliquer sur le bouton Delete (ou appuyer sur Suppr)
  3. Confirmer la suppression

Via API :

curl -X DELETE "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/files?path=/old-file.txt" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN"

Variables d’environnement

Stockez la configuration sensible de manière sécurisée.

Pourquoi utiliser des variables d’environnement ?

Sécurité :

  • Clés API et secrets pas dans le code
  • Chiffrées au repos
  • Pas exposées dans l’historique Git

Flexibilité :

  • Valeurs différentes par environnement
  • Facile à mettre à jour sans changements de code
  • Partager des spaces sans partager les secrets

Bonnes pratiques :

  • Ne jamais commiter d’identifiants dans Git
  • Utiliser des variables d’environnement pour tous les secrets
  • Faire tourner les clés régulièrement

Définir des variables d’environnement

Via l’interface :

  1. Ouvrir le space → Onglet Settings
  2. Cliquer sur “Environment Variables”
  3. Cliquer sur ”+ Add Variable”
  4. Entrer la clé et la valeur :
    Clé : DATABASE_URL
    Valeur : postgresql://user:pass@host:5432/db
  5. Cliquer sur “Save”

Les variables sont chiffrées avant le stockage.

Screenshot

Variables courantes :

# Base de données
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
REDIS_URL=redis://localhost:6379

# Clés API
ANTHROPIC_API_KEY=sk-ant-xxx
OPENAI_API_KEY=sk-xxx
STRIPE_SECRET_KEY=sk_test_xxx

# Application
NODE_ENV=development
PORT=3000
LOG_LEVEL=debug

# Authentification
JWT_SECRET=your-secret-key
SESSION_SECRET=another-secret

Via API :

curl -X POST "https://us.teamday.ai/api/v1/secrets/set" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "spaceId": "s-abc123xyz",
    "key": "DATABASE_URL",
    "value": "postgresql://user:pass@host:5432/db"
  }'

Utiliser des variables d’environnement

Dans le code de l’agent :

Les agents peuvent accéder aux variables lors de l’exécution de code :

# Exemple Python
import os

database_url = os.environ.get('DATABASE_URL')
api_key = os.environ.get('ANTHROPIC_API_KEY')
// Exemple JavaScript
const databaseUrl = process.env.DATABASE_URL;
const apiKey = process.env.ANTHROPIC_API_KEY;

Dans les fichiers de configuration :

Utiliser la syntaxe de placeholder :

{
  "database": "${DATABASE_URL}",
  "apiKey": "${ANTHROPIC_API_KEY}"
}

Consulter les variables

Via l’interface :

  1. Settings → Environment Variables
  2. Voir la liste des clés (valeurs masquées)
  3. Cliquer sur “Reveal” pour afficher temporairement la valeur

Via API :

curl -X GET "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/environment" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN"

Réponse (valeurs chiffrées) :

{
  "variables": {
    "DATABASE_URL": "***encrypted***",
    "ANTHROPIC_API_KEY": "***encrypted***"
  }
}

Supprimer des variables

Via l’interface :

  1. Settings → Environment Variables
  2. Trouver la variable
  3. Cliquer sur l’icône Delete
  4. Confirmer

Via API :

curl -X DELETE "https://us.teamday.ai/api/v1/secrets/DATABASE_URL?spaceId=s-abc123xyz" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN"

Configuration de l’espace de travail

Limites du système de fichiers

  • Taille totale : 10 GB par space
  • Nombre de fichiers : Illimité (usage raisonnable)
  • Fichier unique : Max 100 MB de téléchargement
  • Fréquence de synchro : Toutes les 5 minutes + sur changements

Synchronisation S3

Tous les spaces se synchronisent automatiquement vers S3 pour la durabilité :

Comment ça marche :

  1. L’agent modifie des fichiers localement
  2. Les changements détectés par le surveillant de fichiers
  3. Fichiers modifiés téléchargés vers S3
  4. Synchro toutes les 5 minutes + immédiatement à l’enregistrement

Avantages :

  • Sauvegarde automatique
  • Récupération de désastre
  • Partage entre sessions
  • Accès depuis plusieurs emplacements

Synchro manuelle :

# Forcer le téléchargement vers S3
teamday spaces sync s-abc123xyz --direction up

# Forcer le téléchargement depuis S3
teamday spaces sync s-abc123xyz --direction down

Vérifier le statut de synchro :

teamday spaces sync-status s-abc123xyz

Sortie :

{
  "spaceId": "s-abc123xyz",
  "lastSync": "2025-01-15T10:30:00Z",
  "pendingChanges": 0,
  "syncEnabled": true
}

Assigner des agents

Donnez l’accès à des agents spécifiques à un space :

Via l’interface :

  1. Ouvrir le space → SettingsAgents
  2. Cliquer sur “Assign Agent”
  3. Sélectionner l’agent dans le menu déroulant
  4. Cliquer sur “Add”

Les agents assignés :

  • Peuvent lire/écrire des fichiers
  • Voir le contexte du space
  • Recevoir les instructions depuis CLAUDE.md

Screenshot

Via API :

curl -X POST "https://us.teamday.ai/api/v1/spaces/s-abc123xyz/agents" \
  -H "Authorization: Bearer $TEAMDAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "char_def456"
  }'

Bonnes pratiques

1. Organiser vos fichiers

Utilisez une structure de projet standard :

project-space/
├── CLAUDE.md          # Instructions
├── README.md          # Docs du projet
├── package.json       # Dépendances
├── src/               # Code source
│   ├── api/          # Routes API
│   ├── services/     # Logique métier
│   ├── utils/        # Utilitaires
│   └── types/        # Types TypeScript
├── tests/            # Fichiers de test
├── docs/             # Documentation
└── .github/          # CI/CD

2. Utiliser .gitignore

Toujours ignorer :

# Dépendances
node_modules/
vendor/

# Sorties de compilation
dist/
build/
.next/

# Environnement
.env
.env.local

# Logs
*.log
logs/

# OS
.DS_Store

3. Documenter dans CLAUDE.md

Facilitez la tâche aux agents :

# Référence rapide

## Démarrer le développement
```bash
bun install
bun run dev

Exécuter les tests

bun test

Tâches courantes

  • Ajouter un endpoint API : Créer un fichier dans src/api/
  • Migration base de données : Exécuter bun run migrate
  • Déployer : Push vers la branche main (déploiement auto)

### 4. Sécuriser vos secrets

**À faire :**
- ✅ Utiliser des variables d'environnement pour tous les secrets
- ✅ Ajouter `.env` à `.gitignore`
- ✅ Faire tourner les clés régulièrement
- ✅ Utiliser des clés différentes par environnement

**À ne pas faire :**
- ❌ Commiter des secrets dans Git
- ❌ Partager des secrets dans les messages de chat
- ❌ Utiliser des clés de production en développement

### 5. Garder les Spaces focalisés

Créer des spaces séparés pour :

- **Développement** - Travail actif
- **Staging** - Tests pré-production
- **Production** - Référence en lecture seule
- **Expérimentations** - Essayer de nouvelles idées

### 6. Sauvegardes régulières

Même avec la synchro S3, maintenez des sauvegardes :

```bash
# Script de sauvegarde hebdomadaire
#!/bin/bash
DATE=$(date +%Y%m%d)
teamday spaces download s-abc123xyz \
  --all \
  --output "backups/project-$DATE.zip"

7. Surveiller la taille du Space

Gardez les spaces sous 1GB pour de meilleures performances :

# Vérifier la taille du space
teamday spaces info s-abc123xyz | grep size

Gros fichiers à éviter :

  • node_modules/ (utiliser .gitignore)
  • Artefacts de compilation (.next/, dist/)
  • Grands jeux de données (utiliser stockage externe)
  • Fichiers binaires (images, vidéos)

8. Nettoyer régulièrement

Supprimer les fichiers non utilisés :

Utilisateur : "Supprimer les fichiers inutilisés dans /tmp et les anciennes branches"

Agent : [Nettoie l'espace de travail]

Dépannage

Space bloqué en “Initializing”

Problème : Le statut n’atteint jamais “ready”

Solutions :

# Vérifier les logs d'initialisation
teamday spaces logs s-abc123xyz --tail 50

# Annuler et réessayer
teamday spaces delete s-abc123xyz
teamday spaces create --name "My Space" --type empty

Fichiers non synchronisés

Problème : Les changements n’apparaissent pas dans S3

Solutions :

# Vérifier que la synchro est activée
teamday spaces config s-abc123xyz --get SYNC_ENABLED

# Forcer la synchro
teamday spaces sync s-abc123xyz --direction up

# Vérifier les logs
teamday spaces logs s-abc123xyz --grep sync

Erreurs “Permission Denied”

Problème : L’agent ne peut pas accéder aux fichiers

Vérifier :

  1. Agent assigné au space
  2. Visibilité du space correcte
  3. Adhésion à l’organisation valide
teamday spaces info s-abc123xyz

Échec de téléchargement volumineux

Problème : Le téléchargement de fichier expire

Solutions :

  1. Diviser en fichiers plus petits (moins de 100MB chacun)
  2. Utiliser CLI au lieu de l’interface (plus fiable)
  3. Compresser avant téléchargement (fichiers zip)
# Télécharger via CLI
teamday spaces upload s-abc123xyz \
  --file large-dataset.csv.gz \
  --dest /data/

Prochaines étapes

Maintenant que vous avez un space configuré :

1. Activer l’intégration Git

2. Travailler avec des agents dans les Spaces

3. Installer des plugins MCP

  • Ajouter des outils pour vos agents
  • Guide : Plugins MCP

4. Configurer l’automatisation

  • Planifier des tâches récurrentes dans les spaces
  • Guide : Automatisation

Ressources d’apprentissage

  • [Référence API Spaces - Documentation API complète
  • [Opérations de fichiers - Gestion avancée de fichiers
  • [Bonnes pratiques de sécurité - Sécuriser vos spaces

Bon développement d’espace de travail ! 🚀