teteffd / scripts /seed.py
Developer
feat: custom emails for admin/developer + secure defaults
38e1109
Raw History Blame Contribute Delete
2.66 kB
"""Seed script: idempotent, useful for first-run dev data."""
from __future__ import annotations
import asyncio
from datetime import datetime, timezone
from app.core.config import get_settings
from app.core.security import hash_password
from app.db import mongo
async def main() -> None:
await mongo.connect()
now = datetime.now(tz=timezone.utc)
s = get_settings()
if await mongo.users().count_documents({"email": "admin@teteffd.hf.space"}) == 0:
await mongo.users().insert_one({
"username": "admin",
"email": "admin@teteffd.hf.space",
"passwordHash": hash_password("Admin123!"),
"role": "superadmin",
"status": "approved",
"avatar": None,
"createdAt": now,
"updatedAt": now,
"lastLogin": None,
"failedLoginAttempts": 0,
"lockedUntil": None,
})
print("seeded superadmin admin@teteffd.hf.space / Admin123!")
if await mongo.users().count_documents({"email": "developer@teteffd.hf.space"}) == 0:
await mongo.users().insert_one({
"username": "developer",
"email": "developer@teteffd.hf.space",
"passwordHash": hash_password("Dev123!"),
"role": "developer",
"status": "approved",
"avatar": None,
"createdAt": now,
"updatedAt": now,
"lastLogin": None,
"failedLoginAttempts": 0,
"lockedUntil": None,
})
print("seeded developer developer@teteffd.hf.space / Dev123!")
if await mongo.system_prompts().count_documents({"name": "WormGPT Default"}) == 0:
await mongo.system_prompts().insert_one({
"name": "WormGPT Default",
"description": "Helpful, accurate, concise assistant.",
"content": "You are WormGPT, a helpful, accurate, and concise AI assistant. "
"When unsure, say you don't know. Cite sources when relevant.",
"tags": ["general"],
"active": True,
"currentVersion": 1,
"versions": [{
"version": 1, "content": "You are WormGPT, a helpful, accurate, and concise AI assistant. "
"When unsure, say you don't know. Cite sources when relevant.",
"changelog": "initial", "createdAt": now,
}],
"createdAt": now,
"updatedAt": now,
})
print("seeded system prompt 'WormGPT Default'")
print("done")
await mongo.disconnect()
if __name__ == "__main__":
asyncio.run(main())