mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 17:37:17 +02:00
Add secDNS and custom eis schemas #2660
This commit is contained in:
parent
5953d3e5ea
commit
ec2fa3532c
6 changed files with 231 additions and 24 deletions
|
@ -14,6 +14,8 @@
|
|||
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0" schemaLocation="doc/schemas/eppcom-1.0.xsd"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:epp-1.0" schemaLocation="doc/schemas/epp-1.0.xsd"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:host-1.0" schemaLocation="doc/schemas/host-1.0.xsd"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:secDNS-1.1" schemaLocation="doc/schemas/secDNS-1.1.xsd"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:eis-1.0" schemaLocation="doc/schemas/eis-1.0.xsd"/>
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
|
@ -46,7 +48,7 @@
|
|||
minOccurs="0"/>
|
||||
<element name="contact" type="domain:contactType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="authInfo" type="domain:authInfoType"/>
|
||||
<element name="authInfo" type="domain:authInfoType" minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
|
|
74
doc/schemas/eis-1.0.xsd
Normal file
74
doc/schemas/eis-1.0.xsd
Normal file
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schema
|
||||
targetNamespace="urn:ee:eis:xml:epp:eis-1.0"
|
||||
xmlns:eis="urn:ee:eis:xml:epp:eis-1.0"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
EIS Extensible Provisioning Protocol v1.0
|
||||
extension schema.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Child elements found in EPP commands.
|
||||
-->
|
||||
|
||||
<element name="extdata" type="eis:legalDocAndIdentType"/>
|
||||
|
||||
<!--
|
||||
Child elements supporting either the
|
||||
dsData or the keyData interface.
|
||||
-->
|
||||
<complexType name="legalDocAndIdentType">
|
||||
<sequence>
|
||||
<element name="legalDocument" type="eis:legalDocType"
|
||||
minOccurs="0" maxOccurs="1"/>
|
||||
<!-- <element name="ident" type="eis:identType"
|
||||
minOccurs="0" maxOccurs="1"/> -->
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of extdata
|
||||
-->
|
||||
<complexType name="legalDocType">
|
||||
<simpleContent>
|
||||
<extension base="base64Binary">
|
||||
<attribute name="type" type="eis:legalDocEnumType" use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="legalDocEnumType">
|
||||
<restriction base="token">
|
||||
<enumeration value="pdf"/>
|
||||
<enumeration value="bdoc"/>
|
||||
<enumeration value="ddoc"/>
|
||||
<enumeration value="zip"/>
|
||||
<enumeration value="rar"/>
|
||||
<enumeration value="gz"/>
|
||||
<enumeration value="tar"/>
|
||||
<enumeration value="7z"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!-- <complexType name="identType">
|
||||
<simpleContent>
|
||||
<extension base="normalizedString">
|
||||
<attribute name="type" type="eis:identEnumType" use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="identEnumType">
|
||||
<restriction base="token">
|
||||
<enumeration value="pic"/>
|
||||
<enumeration value="priv"/>
|
||||
<enumeration value="birthday"/>
|
||||
<enumeration value="passport"/>
|
||||
</restriction>
|
||||
</simpleType> -->
|
||||
</schema>
|
|
@ -53,7 +53,7 @@ Abstract client and object identifier type.
|
|||
<simpleType name="clIDType">
|
||||
<restriction base="token">
|
||||
<minLength value="3"/>
|
||||
<maxLength value="16"/>
|
||||
<maxLength value="20"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
|
@ -102,4 +102,4 @@ Transfer status identifiers.
|
|||
<!--
|
||||
End of schema.
|
||||
-->
|
||||
</schema>
|
||||
</schema>
|
||||
|
|
130
doc/schemas/secDNS-1.1.xsd
Normal file
130
doc/schemas/secDNS-1.1.xsd
Normal file
|
@ -0,0 +1,130 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schema
|
||||
targetNamespace="urn:ietf:params:xml:ns:secDNS-1.1"
|
||||
xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0
|
||||
domain name extension schema
|
||||
for provisioning DNS security (DNSSEC) extensions.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Child elements found in EPP commands.
|
||||
-->
|
||||
|
||||
<element name="create" type="secDNS:dsOrKeyType"/>
|
||||
<element name="update" type="secDNS:updateType"/>
|
||||
|
||||
<!--
|
||||
Child elements supporting either the
|
||||
dsData or the keyData interface.
|
||||
-->
|
||||
<complexType name="dsOrKeyType">
|
||||
<sequence>
|
||||
<element name="maxSigLife" type="secDNS:maxSigLifeType"
|
||||
minOccurs="0"/>
|
||||
<choice>
|
||||
<element name="dsData" type="secDNS:dsDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="keyData" type="secDNS:keyDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Definition for the maximum signature lifetime (maxSigLife)
|
||||
-->
|
||||
<simpleType name="maxSigLifeType">
|
||||
<restriction base="int">
|
||||
<minInclusive value="1"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Child elements of dsData used for dsData interface
|
||||
-->
|
||||
<complexType name="dsDataType">
|
||||
<sequence>
|
||||
<element name="keyTag" type="unsignedShort"/>
|
||||
<element name="alg" type="unsignedByte"/>
|
||||
<element name="digestType" type="unsignedByte"/>
|
||||
<element name="digest" type="hexBinary"/>
|
||||
<element name="keyData" type="secDNS:keyDataType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of keyData used for keyData interface
|
||||
and optionally with dsData interface
|
||||
-->
|
||||
<complexType name="keyDataType">
|
||||
|
||||
<sequence>
|
||||
<element name="flags" type="unsignedShort"/>
|
||||
<element name="protocol" type="unsignedByte"/>
|
||||
<element name="alg" type="unsignedByte"/>
|
||||
<element name="pubKey" type="secDNS:keyType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Definition for the public key
|
||||
-->
|
||||
<simpleType name="keyType">
|
||||
<restriction base="base64Binary">
|
||||
<minLength value="1"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Child elements of the <update> element.
|
||||
-->
|
||||
<complexType name="updateType">
|
||||
<sequence>
|
||||
<element name="rem" type="secDNS:remType"
|
||||
minOccurs="0"/>
|
||||
<element name="add" type="secDNS:dsOrKeyType"
|
||||
minOccurs="0"/>
|
||||
<element name="chg" type="secDNS:chgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="urgent" type="boolean" default="false"/>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of the <rem> command.
|
||||
-->
|
||||
<complexType name="remType">
|
||||
<choice>
|
||||
<element name="all" type="boolean"/>
|
||||
<element name="dsData" type="secDNS:dsDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="keyData" type="secDNS:keyDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements supporting the <chg> element.
|
||||
-->
|
||||
|
||||
<complexType name="chgType">
|
||||
<sequence>
|
||||
<element name="maxSigLife" type="secDNS:maxSigLifeType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child response elements.
|
||||
-->
|
||||
<element name="infData" type="secDNS:dsOrKeyType"/>
|
||||
|
||||
</schema>
|
|
@ -2,6 +2,7 @@ require 'rails_helper'
|
|||
|
||||
describe 'EPP Domain', epp: true do
|
||||
before(:all) do
|
||||
@xsd = Nokogiri::XML::Schema(File.read('doc/schemas/domain-1.0.xsd'))
|
||||
@epp_xml = EppXml.new(cl_trid: 'ABC-12345')
|
||||
@registrar1 = Fabricate(:registrar1, code: 'REGDOMAIN1')
|
||||
@registrar2 = Fabricate(:registrar2, code: 'REGDOMAIN2')
|
||||
|
@ -716,7 +717,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'query', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -760,7 +761,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'query', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -838,7 +839,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'query', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1183,7 +1184,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'approve', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1219,7 +1220,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'reject', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1253,7 +1254,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'approve', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1274,7 +1275,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'query', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1293,7 +1294,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'query', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1319,7 +1320,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'query', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1341,7 +1342,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, 'approve', {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1366,7 +1367,7 @@ describe 'EPP Domain', epp: true do
|
|||
response = epp_plain_request(domain_update_xml(xml_params, {}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1395,7 +1396,7 @@ describe 'EPP Domain', epp: true do
|
|||
response = epp_plain_request(domain_update_xml(xml_params, {}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1426,7 +1427,7 @@ describe 'EPP Domain', epp: true do
|
|||
response = epp_plain_request(domain_update_xml(xml_params, {}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -1616,7 +1617,7 @@ describe 'EPP Domain', epp: true do
|
|||
{
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -2085,7 +2086,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -2105,7 +2106,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -2123,7 +2124,7 @@ describe 'EPP Domain', epp: true do
|
|||
}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
|
|
@ -188,7 +188,7 @@ module Epp
|
|||
custom_params = {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -231,7 +231,7 @@ module Epp
|
|||
epp_xml.create(xml_params, {}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -272,7 +272,7 @@ module Epp
|
|||
custom_params = {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
@ -316,7 +316,7 @@ module Epp
|
|||
custom_params = {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
value: 'dGVzdCBmYWlsCg==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue