Database
The database is a graph-oriented database from ArangoDB.
It is initialized when creating an admin user when the app is started for the first time (in /passiveDNS/db/database.py)
Database schema

Structure of collections
Nodes
Users
{
"_key": "username",
"hashed_password": "str",
"role": "user|admin|scheduler",
"api_keys": {
"api_name":"key",
"..."
}
}Domain Name
{
"_key": "domain",
"records": ["..."],
"registrar": "str",
"created_at": "datetime",
}Channel
{
"_key": "name",
"type": "redis",
"infos": {
"host": "str",
"port": "str",
"db": "str"
},
}IPAddress
{
"_key": "address",
"location": {
"country":"str",
"country_code":"str",
"region":"str",
"region_name":"str",
"city":"str",
"zip_code":"str",
"latitude":"float",
"longitude":"float",
"timezone":"str",
"ISP":"str",
"organization":"str",
"AS":"str",
},
}Tag
{
"_key": "name",
}ApiIntegration
{
"_key": "name",
"base_url": "str",
"header": "str",
"ip": {
"method": "GET|POST",
"uri": "str",
},
"domain": {
"method": "GET|POST",
"uri": "str",
},
}Edges
UserDn
{
"_from": "Users/username",
"_to": "DomainName/domain",
"username": "str",
"domain_name": "str",
"owned": "str",
}DomainNameResolution
{
"_from": "DomainName/domain",
"_to": "IPAddress/address",
"domain_name": "str",
"ip_address": "str",
"resolver": "str",
"last_updated_at": "datetime",
"first_updated_at": "datetime",
}TagDnIp
{
"_from": "Tag/name",
"_to": "DomainName/domain|IPAddress/address",
"tag": "str",
"object": "str",
"type": "DomainName|IPAddress",
}