You've already forked directdnsonly
- Migrated from setuptools to Poetry; added pyproject.toml, poetry.lock, poetry.toml and .python-version (Python 3.11.12) - Built out full directdnsonly Python package with BIND and CoreDNS MySQL backends, CherryPy REST API, persist-queue worker, and vyper-based config - Auth credentials now read from config/env (app.auth_username/password) rather than hardcoded; override via DADNS_APP_AUTH_PASSWORD env var - Added Dockerfile.deepseek: Python 3.11 slim + BIND9 + Poetry install - Rewrote docker-compose.yml for local dev stack (MySQL + dadns services) - Added SQL schema, docker/ BIND configs, justfile, tests, and README - Expanded .gitignore for Poetry/Python project artifacts
36 lines
959 B
Python
36 lines
959 B
Python
from directdnsonly.app.db import Base
|
|
from sqlalchemy import Column, Integer, String, DateTime
|
|
|
|
|
|
class Key(Base):
|
|
__tablename__ = "keys"
|
|
id = Column(Integer, primary_key=True)
|
|
key = Column(String(255), unique=True)
|
|
name = Column(String(255))
|
|
expires = Column(DateTime)
|
|
service = Column(String(255))
|
|
|
|
def __repr__(self):
|
|
return "<Key(key='%s', name='%s', expires='%s', service='%s')>" % (
|
|
self.key,
|
|
self.name,
|
|
self.expires,
|
|
self.service,
|
|
)
|
|
|
|
|
|
class Domain(Base):
|
|
__tablename__ = "domains"
|
|
id = Column(Integer, primary_key=True)
|
|
domain = Column(String(255), unique=True)
|
|
hostname = Column(String(255))
|
|
username = Column(String(255))
|
|
|
|
def __repr__(self):
|
|
return "<Domain(id='%s', domain='%s', hostname='%s', username='%s')>" % (
|
|
self.id,
|
|
self.domain,
|
|
self.hostname,
|
|
self.username,
|
|
)
|