Skip to content

Add unitops.app.portal template (signed-sync CNAME)#1272

Draft
neilberkman wants to merge 2 commits into
Domain-Connect:masterfrom
neilberkman:unitops-portal-template
Draft

Add unitops.app.portal template (signed-sync CNAME)#1272
neilberkman wants to merge 2 commits into
Domain-Connect:masterfrom
neilberkman:unitops-portal-template

Conversation

@neilberkman

@neilberkman neilberkman commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Description

New signed-sync template for UnitOps (self-storage facility-management platform). It lets an operator point a subdomain (e.g. rent.theirstorage.com) at their UnitOps rentals & tenant portal with a single CNAME, via Domain Connect.

Single CNAME at host: "@", hostRequired: true (subdomain-only; a CNAME can't live at the apex), signed sync (syncPubKeyDomain: unitops.app).

Type of change

Please mark options that are relevant.

  • New template
  • Bug fix (non-breaking change which fixes an issue in the template)
  • New feature (non-breaking change which adds functionality to the template)
  • Breaking change (fix or feature that would cause existing template behavior to be not backward compatible)

How Has This Been Tested?

Please mark the following checks done

  • Template functionality checked using Online Editor
  • Template file name follows the pattern <providerId>.<serviceId>.json (unitops.app.portal.json)
  • resource URL provided with logoUrl is actually served by a webserver (https://unitops.app/images/logo.svg → HTTP 200, image/svg+xml)

Additionally validated locally: passes the repo template.schema, and dc-template-linter reports no findings (exit 0). The signed-sync chain was verified end to end — a signed apply request verifies against the public key published at _dck1.unitops.app (RSA-SHA256).

Checklist of common problems

  • syncPubKeyDomain is set (unitops.app)
  • warnPhishing is not set alongside syncPubKeyDomain
  • syncRedirectDomain is set whenever the template uses redirect_uri — N/A, this template does not use redirect_uri
  • no TXT record contains SPF content — N/A, no TXT records
  • txtConflictMatchingMode is set on TXT records that must be unique — N/A, no TXT records
  • no variable is used as a bare full record value — bare variable used, justified: pointsTo: "%target%" is the UnitOps service hostname supplied by the service provider (not user free-text), same pattern as approximated.app.subdomaincname. It is a single fixed param we pass so the one-click target stays in sync with our manual-setup instructions.
  • no bare variable is used as the full host label (host is @)
  • no variable is used in the host field to create a subdomain (uses the host parameter / hostRequired)
  • %host% does not appear explicitly in any host attribute
  • essential is set to OnApply on records the user may modify — N/A, the single CNAME is the template's purpose and isn't user-modifiable

Online Editor test results

Editor test link(s):

@github-actions github-actions Bot added hostRequired hostRequired is set PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. Test links missing No test links from Online Editor provided labels Jun 22, 2026
@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown

JSON Filename Check Passed

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown

JSON Schema Validation Passed

@github-actions

Copy link
Copy Markdown

Linter OK

unitops.app.portal.json

Level Code Note

@github-actions

Copy link
Copy Markdown

PR Description Check Failed

The PR description is missing required elements. Please update it according to the PR template.

Details
  OK  Type of change: 1/4 checkboxes ticked
  OK  Checklist of common problems: 9/10 checkboxes ticked

Labels to add: PR description incomplete, Test links missing
Labels to remove: Checklist of common problems not complete, Forged editor links

PR description check FAILED:
  FAIL  'How Has This Been Tested?': 1/3 checkboxes are not ticked
  FAIL  'Online Editor test results': no valid editor test link found
  FAIL  Template coverage: unitops.app.portal.json: no editor test link found (expected template id 'unitops.app.portal')

@crova crova mentioned this pull request Jun 23, 2026
17 tasks
simplyi pushed a commit to simplyi/Templates that referenced this pull request Jun 25, 2026
# Description


Supersedes Domain-Connect#1272.
Contains identical template plus completed Online Editor testing.

<!-- short description of the template(s) and/or reason for update -->

## Type of change

Please mark options that are relevant.

- [X] New template
- [ ] Bug fix (non-breaking change which fixes an issue in the template)
- [ ] New feature (non-breaking change which adds functionality to the
template)
- [ ] Breaking change (fix or feature that would cause existing template
behavior to be not backward compatible)

# How Has This Been Tested?

Please mark the following checks done
- [X] Template functionality checked using [Online
Editor](https://domainconnect.paulonet.eu/dc/free/templateedit)
- [X] Template file name follows the pattern
`<providerId>.<serviceId>.json` (`unitops.app.portal.json`)
- [X] Resource URL provided with logoUrl is actually served by a
webserver (https://unitops.app/images/logo.svg → HTTP 200,
image/svg+xml)

# Checklist of common problems

Mark all the checkboxes after conducting the check. Comment on any point
which is not fulfilled.
See [Template Quality
Guidelines](../README.md#template-quality-guidelines) for details and
rationale on each rule.

- [X] `syncPubKeyDomain` is set (unitops.app)
- [X] `warnPhishing` is **not** set alongside `syncPubKeyDomain`
- [X] `syncRedirectDomain` is set whenever the template uses
`redirect_uri` — N/A, this template does not use `redirect_uri`
- [X] no TXT record contains SPF content — N/A, no TXT records
- [X] `txtConflictMatchingMode` is set on TXT records that must be
unique — N/A, no TXT records
- [ ] no variable is used as a bare full record value — **bare variable
used, justified**: pointsTo: "%target%" is the UnitOps service hostname
supplied by the service provider (not user free-text), same pattern as
approximated.app.subdomaincname. It is a single fixed
param we pass so the one-click target stays in sync with our
manual-setup instructions.
- [X]  no bare variable is used as the full `host` label (`host` is `@`)
- [X] no variable is used in the `host` field to create a subdomain
(uses the `host` parameter / `hostRequired`)
- [X] `%host%` does not appear explicitly in any `host` attribute
- [X] `essential` is set to `OnApply` on records the end user may need
to modify — N/A, the single CNAME is the template's purpose and isn't
user-modifiable

## Online Editor test results

<!-- 
Required. Follow these steps in the Online Editor
(https://domainconnect.paulonet.eu/dc/free/templateedit):
1. Load your template and use "Check template" to perform extended
schema and consistency check
    2. Fill in domain/host as well as variable values
    3. Click "Test apply template"
    4. Click "Copy Markdown" and paste the link below
5. If necessary repeat steps 2-4 with different group setups and/or
domain/host configuration
-->

**Editor test link(s):** 
[Test unitops.app/portal
oakhollowstorage.com/rent](https://domainconnect.paulonet.eu/dc/free/templateedit?token=H4sIACpjOmoC%2F91T227bMAz9FUNAhw1LHMVNHNTAgHXtekHXpuvlYS0Cg7FZR5gtqZKcLA3y76NyL9r9wJ5skodHh0fUjDmsdAkOWTJj2qixyNGc5yxhtRROaRuC1qyxKV1BRVB2T8W%2BtlSwaMYiw0WLVsZBuU2uwLdOGSgwMCipbIMPgUMJ0gUb%2FBiNFUqypN1gpSrUvSmpb%2BSctkmrtaOkJSpisi0PCu24oN4cbWaEdot%2Bdq0EEU9VbYKstk5VQa4qEDKAVXal%2FF9iQq8GjIBhicevmB2YAl0gbOBGuKEZKeskjblIHl0dXn4nIpJAKBV8xLAIgx35nzy9ncrsuh5e4PR4Ie2N157zBp9rYZBcdabGBjOYKZNbljzOmJtqb%2BvitBWcwq%2F%2BlhZH3ykK95Z69yjrHLm5H3M%2BH8wb7EVJTLd0A3JwLUPB75EqSzWxyxsLM1VtD%2FCOUVQYVetUrJs1GKis3541zeP7PIM10eOSieKlRJ%2FZNcCLFIVUBlNLX3C1wbUNVV06kcIEtqk8S6mrnNJMlqrE9tYiuVzE1QQ5OHhj%2BsakBkvzzM8j%2FEpjFD%2F1nnjc7HXyYbOTPcXN4QH0mnG3s9%2FDvItxdLDzPN55Oe8%2BkNeWorX0I8Av%2FWE5gall8%2FmgQfb%2BJ6PQXVsYY56Ch0Y8ipukI9q%2Fa%2FOkEyVdHvLooNNtf%2BY84dyPgNYtZ5vRNuzuAbPts9sTeV6cdC9P5c2fiv88wuFz%2Fuvbff%2By3%2B%2FEcPqgf1zdnL088C9s%2FhcGkJx84QQAAA%3D%3D)

---------

Co-authored-by: Neil Berkman <neil@xuku.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hostRequired hostRequired is set PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. Test links missing No test links from Online Editor provided

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant