"OIDDB/0.1" DRAFT file format description and examples

(C) 2012 ViaThinkSoft, Daniel Marschall

Intended purpose

Use cases

Advantages

Disadvantages

Format

Current list of attributes

Attribute Inherited from parent Scope [1] Parameters Comments
SOA (valid for all NIDs) No LOCAL RA None Place holder if no delegations or attributes are available for this object.
RA If not set [3] LOCAL RA "<RA contact information, human-readable, '\n' allowed>" [7]
NAME No LOCAL RA "<Single line name resp very short description>"  
DESCRIPTION No LOCAL RA "<Description and additional information, human-readable, '\n' allowed>"  
DELEGATION No LOCAL RA <numeric child identifier> <zone file location [2]>  
PRIVATECHILD No LOCAL RA <numeric child identifier>  
NUMSECRETCHILDREN No LOCAL RA <number of childnodes which are NOT listed as CHILD or PRIVATECHILD (i.e. their numerical values are secret)>  
IDENTIFIER No SUPERIOR RA <identifier value, e.g. example> <numeric child identifier, e.g. 999>  
UNICODELABEL No SUPERIOR RA <Unicode label, e.g. ViaThinkSoft> <numeric child identifier, e.g. 12345> [4]
FLAG-DRAFT Yes, cannot be unset SUPERIOR RA <numeric child identifier> [5]
FLAG-LEAF Yes, cannot be unset SUPERIOR RA <numeric child identifier> [6]

Remarks:

  1. Defines who may change the attribute for a given OID
    LOCAL = (Attributes the local RA can change by itself)
    SUPERIOR RA = (Attributes only the superior RA can change)
  2. Zone location. There are 3 possibilities:
    A) URL where the zone informations of the child are stored.
    ?? should local file references be accepted ???
    Relative urls shall be accepted.
    Please note: IDNs (Unicode domain name which needs to be translated into punycode first) shall be accepted by the client.
    FTP URLs shall be accepted.
    HTTPS MUST be accepted by the client. Only with HTTPS, informations can be ensured authorative.
    Also note that the URL can be a simple TXT file or a PHP script which generates the record files from a database etc. This makes delegation pretty flexible.
    B) "<here>" (without quotes), if the zone informations are stored in the same file
    C) "<none>" (without quotes) if no zone exists yet resp. if the child is a leaf node. But if you want to set a RA, description or name, you have to create a zone for this OID, since the superior OID cannot define these attributes.
  3. If the RA attribute is NOT set locally, it will be INHERITED from the superior OID! This makes it very easy for companies who have many OIDs. They only need to change the RA for children they delegate to another person/department.
  4. It could be also an longarc definition, e.g. "root UNICODELABEL Example 2.999"
  5. (Idea by Daniel Marschall) This indicates that the OID is a draft resp reserved. It can be removed or changed at ANY TIME. An OID viewer/resolver SHOULD NOT DISPLAY DRAFT-OIDS. THESE ENTRIES ARE USUALLY PRIVATE FOR THE OID RA, e.g. when they draft some new software which is needing an amount of OIDs. An draft OID usually just reserves the OID from accidently getting overwritten by another OID.
  6. (Like seen at oid-info.com) This indicates that the OID is a leaf. A parser will stop searching for children, resp. children are locked
  7. Note that since the TXT file is publicly available through HTTP(S), the RA contact information cannot be made private. If you'd like to be private, just don't enter your address. You can also e.g. publish a handle number which can be used to contact you resp. a URL to an online contact form.

EXAMPLE 1: USING OID PLUS FOR MANAGING THE WHOLE OID TREE AS AN ALTERNATIVE FOR ORS

Making ORS easier would mean:

In our example of an ORS-alternative, the resolution would start at https://root.ors.example.com/ with the entry "root". It does not matter if the first arc you want to resolve is an numeric identifier, or an alpha identifier or an non-numeric Unicode label.

[OIDDB/0.1]

# -------------------------
# ROOT ZONE FILE WHICH DEFINES THE ATTRIBUTES OF THE OIDS 0, 1 AND 2 AS WELL AS LONGARCS
# -------------------------

oid:	UNICODELABEL	ISO	0
oid:	IDENTIFIER	iso	0
oid:	DELEGATION	0	https://iso.example.com/zone_record.php?oid=0

oid:	IDENTIFIER	itu-t	1
oid:	IDENTIFIER	itu-r	1
oid:	IDENTIFIER	ccitt	1
oid:	DELEGATION	1	https://itu.example.com/zone_1.txt

oid:	IDENTIFIER	joint-iso-itu-t	2
oid:	IDENTIFIER	joint-iso-ccitt	2
oid:	DELEGATION	2	<here>

# Longarcs
oid:	UNICODELABEL	Example	2.999

# -------------------------
# ZONE FILE FOR OID "2"
# -------------------------

oid:2	RA		"RA information about Joint ISO/ITU-T"
oid:2	DELEGATION	999	<here>
oid:2	FLAG-LEAF	999

# -------------------------
# ZONE FILE FOR OID "2.999"
# -------------------------

oid:2.999	RA		"None"
oid:2.999	NAME		"Example OID"
oid:2.999	DESCRIPTION	"This OID is used as example"

EXAMPLE 2: HOW A SMALL COMPANY WHICH OWNS THE OID 2.999.1.2.3 COULD MANAGE ITS OID TREE WITH A SINGLE TXT FILE

They simply create this text file and tell "OID Plus" to use this textfile as root for displaying/querying everything. Also, the root OIDs have to be specified (2.999.1.2.3)

[OIDDB/0.1]

# -------------------------
# ZONE 2.999.1.2.3
# -------------------------

oid:2.999.1.2.3	RA		"My company"
oid:2.999.1.2.3	NAME		"My company Root OID"
oid:2.999.1.2.3	DESCRIPTION	"This is the OID 2.999.1.2.3 owned by My Company!"
oid:2.999.1.2.3	IDENTIFIER	four	4
oid:2.999.1.2.3	IDENTIFIER	vier	4
oid:2.999.1.2.3	IDENTIFIER	quattro	4
oid:2.999.1.2.3	UNICODELABEL	FOUR	4
oid:2.999.1.2.3	UNICODELABEL	VIER	4
oid:2.999.1.2.3	UNICODELABEL	QUATTRO	4
oid:2.999.1.2.3	DELEGATION	4	<here>
oid:2.999.1.2.3	FLAG-LEAF	4
oid:2.999.1.2.3	FLAG-DRAFT	4

oid:2.999.1.2.3	PRIVATECHILD	5
oid:2.999.1.2.3	PRIVATECHILD	6
oid:2.999.1.2.3	PRIVATECHILD	7

# There are 100 secret children, 3 private children (id 5, 6 and 7) and 1 public child (id 4), so 2.999.1.2.3 has 104 child nodes in total
oid:2.999.1.2.3	NUMSECRETCHILDREN 100

# -------------------------
# ZONE 2.999.1.2.3.4
# -------------------------

oid:2.999.1.2.3.4	NAME		"Cup of tea"
oid:2.999.1.2.3.4	DESCRIPTION	"This is the OID 2.999.1.2.3.4!"

Beside "oid" there could be also other NIDs like e.g. "clsid" or "doi" which can be also delegated. Note that the attribute IDs, e.g. unicodelabel are dependent to the NID oid, e.g. the attribute "unicodelabel" should behave different on a oid than for a clsid.

More ideas / TODO