Base module for DNS infrastructure

base_dns_infrastructure
REPOSITORY
REPOSITORYOCA/infrastructure
GIT
GIThttps://github.com/OCA/infrastructure.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/infrastructure/tree/18.0/base_dns_infrastructure
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYServices
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Elico Corp, Mind And Go
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Elico Corp, Mind And Go
COMMITTERS
COMMITTERSOCA-git-bot, Florent THOMAS, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/infrastructure
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES validator-collection
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module only introduces the main data model and can be used as is to
manually store DNS records. It provides the main objects.

Additional modules for specific connectors need to be added to manage
the service provider connection.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
dns_record_form DNS Record Form dns.record form New
dns_record_search DNS Record Search dns.record search New
dns_record_tree DNS Record Tree dns.record list New
dns_record_type_form DNS Record Type dns.record.type form New
dns_record_type_tree DNS Record Type Tree dns.record.type list New
dns_zone_form DNS Zone Form dns.domain_zone form New
dns_zone_search DNS Zone Search dns.domain_zone search New
dns_zone_tree DNS Zone Tree dns.domain_zone list New
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True string='Complete Domain Name'
  • name Char
    help='\n In case of a domain FQDN Hosted domain zone name, such as amazon.com\n In case of a sub domain, the first key of the sub domain\n ' required=True string='Domain Name'
  • owner_partner_id Many2one → res.partner
    comodel_name='res.partner' string='Owner'
  • parent_id Many2one → dns.domain_zone
    comodel_name='dns.domain_zone' index=True ondelete='restrict' string='Parent Domain' tracking=True
  • parent_path Char
    index=True
  • record_ids One2many → dns.record
    comodel_name='dns.record' inverse_name='zone_id' string='DNS Records'
  • renew_date Date
    string='Renewal Date' tracking=True
  • state Selection
    default='draft' help='In Production when active otherwise Exception' tracking=True args: [('draft', 'Draft'), ('production', 'Production'), ('exception', 'Exception'), ('inactive', 'Inactive')]
Public methods (0)

No public methods.

New fields (7)
  • active Boolean
    default=True
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True string='DNS Record Name'
  • ttl Integer
    default=60 help='Time to Live, in seconds. Scope: 1-604800' required=True string='TTL'
  • type_help Text
    related='type_id.help' string='Record Help'
  • type_id Many2one → dns.record.type
    comodel_name='dns.record.type' required=True string='Record Type'
  • value Char
    help='Enter multiple values on separate lines. Enclose text in quotation marks.' required=True string='DNS Record Value'
  • zone_id Many2one → dns.domain_zone
    comodel_name='dns.domain_zone' help='Domain that this record is applied to.' ondelete='restrict' required=True string='Domain'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True
  • code Char
    required=True string='DNS Type Code'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True string='DNS Record Type Complete Name'
  • help Text
    help='Text that will be displayed to user as a formatting guide for this record type.'
  • name Char
    help='Name of DNS record type, such a "A" or "CNAME".' required=True string='DNS Type Name'
  • validate_regex Text
    help='This is a regex that is used for validation of the record value. Leave blank for no validation.'
Public methods (0)

No public methods.

New fields (1)
  • domain_zone_ids One2many → dns.domain_zone
    comodel_name='dns.domain_zone' inverse_name='owner_partner_id' string='Domain Zones'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/infrastructure
GIT
GIThttps://github.com/OCA/infrastructure.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/infrastructure/tree/16.0/base_dns_infrastructure
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYServices
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Elico Corp, Mind And Go
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Elico Corp, Mind And Go
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Florent THOMAS, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/infrastructure
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:54:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES validator-collection
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
dns_record_form DNS Record Form dns.record form New
dns_record_search DNS Record Search dns.record search New
dns_record_tree DNS Record Tree dns.record tree New
dns_record_type_form DNS Record Type dns.record.type form New
dns_record_type_tree DNS Record Type Tree dns.record.type tree New
dns_zone_form DNS Zone Form dns.domain_zone form New
dns_zone_search DNS Zone Search dns.domain_zone search New
dns_zone_tree DNS Zone Tree dns.domain_zone tree New
Models touched (4)

New fields (9)
  • active Boolean
    default=True
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True string='Complete Domain Name'
  • name Char
    help='\n In case of a domain FQDN Hosted domain zone name, such as amazon.com\n In case of a sub domain, the first key of the sub domain\n ' required=True string='Domain Name'
  • owner_partner_id Many2one → res.partner
    comodel_name='res.partner' string='Owner'
  • parent_id Many2one → dns.domain_zone
    comodel_name='dns.domain_zone' index=True ondelete='restrict' string='Parent Domain' tracking=True
  • parent_path Char
    index=True unaccent=False
  • record_ids One2many → dns.record
    comodel_name='dns.record' inverse_name='zone_id' string='DNS Records'
  • renew_date Date
    string='Renewal Date' tracking=True
  • state Selection
    default='draft' help='In Production when active otherwise Exception' tracking=True args: [('draft', 'Draft'), ('production', 'Production'), ('exception', 'Exception'), ('inactive', 'Inactive')]
Public methods (0)

No public methods.

New fields (7)
  • active Boolean
    default=True
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True string='DNS Record Name'
  • ttl Integer
    default=60 help='Time to Live, in seconds. Scope: 1-604800' required=True string='TTL'
  • type_help Text
    related='type_id.help' string='Record Help'
  • type_id Many2one → dns.record.type
    comodel_name='dns.record.type' required=True string='Record Type'
  • value Char
    help='Enter multiple values on separate lines. Enclose text in quotation marks.' required=True string='DNS Record Value'
  • zone_id Many2one → dns.domain_zone
    comodel_name='dns.domain_zone' help='Domain that this record is applied to.' ondelete='restrict' required=True string='Domain'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True
  • code Char
    required=True string='DNS Type Code'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True string='DNS Record Type Complete Name'
  • help Text
    help='Text that will be displayed to user as a formatting guide for this record type.'
  • name Char
    help='Name of DNS record type, such a "A" or "CNAME".' required=True string='DNS Type Name'
  • validate_regex Text
    help='This is a regex that is used for validation of the record value. Leave blank for no validation.'
Public methods (0)

No public methods.

New fields (1)
  • domain_zone_ids One2many → dns.domain_zone
    comodel_name='dns.domain_zone' inverse_name='owner_partner_id' string='Domain Zones'
Public methods (0)

No public methods.