1c7ad9aaae
Reported error when adding a DuckDNS provider:
TypeError: this.domains.map is not a function
at Proxy.updateDomains (models/dns_provider.js:185:37)
DnsProvider.__intraModel merges `{...DnsProvider._keyMap,
...Provider._keyMap}`, so a provider-defined field with the same name
as one of DnsProvider's own (created_by, updated_by, name,
dnsProvider, domains, id) silently overwrites it. DuckDNS defined a
`domains` field (the operator-supplied comma-separated subdomain
list), which replaced DnsProvider's `domains` relation (rel: 'many' to
Domain, populated by updateDomains()) — so `this.domains` stopped
being the array relation and became DuckDNS's raw string instead.
Rename the field to `subdomains` throughout (model, docs, tests). Add
a comment on __intraModel documenting the collision risk for future
providers, and a regression test asserting no registered provider's
_keyMap redefines one of DnsProvider's reserved field names.
Documentation
This directory contains the GitHub Pages documentation site for the Proxy project.
Live site: https://theta42.github.io/proxy/
Pages
index.md- Home page with project overviewinstallation.md- Installation and setup guideapi.md- Complete API referencearchitecture.md- System architecture and designcontributing.md- Development and contribution guide
Local Preview
To preview the site locally:
# Install Jekyll (one-time setup)
gem install jekyll bundler
# Run local server
cd docs
jekyll serve
# View at http://localhost:4000/proxy/
Theme
The site uses the Cayman theme (jekyll-theme-cayman). Configuration is in _config.yml.
Updating Documentation
- Edit markdown files in this directory
- Commit and push to master branch
- GitHub Pages automatically rebuilds (may take 1-2 minutes)
- Changes visible at https://theta42.github.io/proxy/