AeThex-Connect/INTEGRATION.md

181 lines
4.8 KiB
Markdown

# Integration Guide: Adding Domain Verification to api.aethex.cloud
## Overview
This guide shows how to integrate the domain verification feature into your existing api.aethex.cloud backend.
## Files to Copy to Your API Backend
### 1. Core Utilities
Copy these to your api.aethex.cloud project:
```
📁 Your API Project/
├── utils/
│ └── domainVerification.js ← Copy from src/backend/utils/
└── middleware/
└── auth.js ← Update if needed (dev mode auth)
```
### 2. Routes
Copy and integrate:
```javascript
// In your api.aethex.cloud routes/index.js or app.js
const domainRoutes = require('./routes/domainRoutes');
// Mount the domain verification routes
app.use('/api/passport/domain', domainRoutes);
```
### 3. Database Migration
Run this SQL on your Supabase database:
```bash
# Option 1: Via Supabase Dashboard
# Go to https://supabase.com/dashboard/project/kmdeisowhtsalsekkzqd/editor
# Run the SQL from: src/backend/database/migrations/001_domain_verifications.sql
# Option 2: Via CLI (if you're in your API project with supabase linked)
supabase db push
```
## Integration Steps
### Step 1: Copy Files to Your API Project
```bash
# In your api.aethex.cloud project
mkdir -p utils routes
# Copy domain verification utilities
cp /path/to/AeThex-Connect/src/backend/utils/domainVerification.js utils/
# Copy domain routes
cp /path/to/AeThex-Connect/src/backend/routes/domainRoutes.js routes/
```
### Step 2: Install Dependencies (if not already installed)
```bash
npm install ethers --save
# (pg, crypto, dns are Node.js built-ins)
```
### Step 3: Add Routes to Your Express App
In your `app.js` or `server.js`:
```javascript
// Import the domain routes
const domainRoutes = require('./routes/domainRoutes');
// Mount at the correct path
app.use('/api/passport/domain', domainRoutes);
```
### Step 4: Environment Variables
Add to your api.aethex.cloud `.env`:
```env
# Blockchain Configuration (for .aethex domain verification)
RPC_ENDPOINT=https://polygon-mainnet.g.alchemy.com/v2/3-qjAZSq7DyEuJQKH3KPm
FREENAME_REGISTRY_ADDRESS=0x... # Add the actual contract address
```
### Step 5: Database Schema
The tables are already created on your Supabase database:
-`domain_verifications`
-`users` (extended with `verified_domain` and `domain_verified_at`)
### Step 6: Test the Integration
```bash
# Test the API endpoint
curl https://api.aethex.cloud/api/passport/domain/status \
-H "Authorization: Bearer YOUR_TOKEN"
# Expected: {"hasVerifiedDomain": false} or your verification status
```
## Frontend Integration
### Update Your aethex.tech Frontend
The frontend is already configured to call `api.aethex.cloud`:
```javascript
import DomainVerification from './components/DomainVerification';
// In your profile/settings page:
<DomainVerification />
// It will automatically call https://api.aethex.cloud/api/passport/domain/*
```
### Add the Components
Copy these to your aethex.tech frontend:
```
📁 Your Frontend (aethex.tech)/
├── components/
│ ├── DomainVerification.jsx
│ ├── DomainVerification.css
│ ├── VerifiedDomainBadge.jsx
│ └── VerifiedDomainBadge.css
```
## API Endpoints Added
Once integrated, these endpoints will be available at api.aethex.cloud:
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/passport/domain/request-verification` | Generate verification token |
| POST | `/api/passport/domain/verify` | Verify domain ownership |
| GET | `/api/passport/domain/status` | Get user's verification status |
## Authentication
The routes use your existing auth middleware. Make sure:
- JWT tokens are passed in `Authorization: Bearer <token>` header
- Middleware extracts `req.user.id` and `req.user.email`
If your auth is different, update `domainRoutes.js` accordingly.
## Quick Copy-Paste for Your API
### In your api.aethex.cloud app.js:
```javascript
// Add this line with your other route imports
const domainRoutes = require('./routes/domainRoutes');
// Add this line with your other route mounts
app.use('/api/passport/domain', domainRoutes);
```
### In your api.aethex.cloud database setup:
```sql
-- Run in Supabase SQL Editor
-- This creates the domain verification tables
-- (Already done if you ran the migration earlier)
```
## Testing Checklist
- [ ] Copy `domainVerification.js` to your API utils
- [ ] Copy `domainRoutes.js` to your API routes
- [ ] Add route mount in your Express app
- [ ] Verify database tables exist in Supabase
- [ ] Test endpoint: `GET /api/passport/domain/status`
- [ ] Copy frontend components to aethex.tech
- [ ] Test full flow: request → add DNS → verify
## Need Help?
The current standalone server at `localhost:3000` is just for testing. Once integrated into api.aethex.cloud, you can remove this standalone server.
All the backend code is modular and ready to plug into your existing API!