{"_id":"59d03e01783f1a0010dad747","project":"568bdc1483d2061900d86cdc","version":{"_id":"59a72290d61777001b6c42c3","project":"568bdc1483d2061900d86cdc","__v":19,"createdAt":"2017-08-30T20:39:44.453Z","releaseDate":"2017-08-30T20:39:44.453Z","categories":["59a7236e3fe4d90025117c10","59a72eb6cb0db3001b84cfe2","59a734eb757d030019b85af8","59c0243b1b2d07001a9d2b76","59c035e42126e10028effb12","59c06c40df5b3c0010584a13","59c1a5852cabe5002641a3e7","59c2fb00b2b45c0010b7a3d7","59c32ceb9aea850010ac4130","59c32e6e190c90003cb0d12f","59c33affb2b45c0010b7aa23","59c7dfa457bd8200105444dc","59c7e975c50cf30010d712a0","59cffdef0cd4dd0010294d54","59d0622ca91a810032c8f60c","59d06733c1aec60026253065","59d174d44ac471001a07b123","59d5a5e323e6e800103defb2","59ecf1d8ed507c001c52b255"],"is_deprecated":false,"is_hidden":false,"is_beta":true,"is_stable":true,"codename":"","version_clean":"0.0.0","version":"0"},"category":{"_id":"59cffdef0cd4dd0010294d54","project":"568bdc1483d2061900d86cdc","version":"59a72290d61777001b6c42c3","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-09-30T20:26:23.487Z","from_sync":false,"order":2,"slug":"platform-overview","title":"Platform Overview"},"user":"58cc41f21751ce2f003be3b7","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-01T00:59:45.793Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"# Overview\n\nAll objects in the Droplit system must have identifiers. Every identifier should be unique in the Droplit system, and each identifer must be unique in the context in which it resides.\n\nFor example, consider two groups of identifers.\n* A, B, and C in group D\n* A, E, and F in group G\n\nIdentifiers B, C, E, and F are unique, regardless of what group they are in. They are the most robust kind of identifier, because they do not require any other information to uniquely identify or access them.\n\nIdentifier A in group D, and identifier A in group G, are also valid, because they are unique in their groups. However, they require further context, defining what group they reside in, to clearly state which identifier is being referred to. In the Droplit system, this is called a scoped reference. To distinguish identifiers by their context, use a semicolon, as “CONTEXT;IDENTIFIER.”\n\nTaking scoped references into account, the groups of identifiers, when identified uniquely, would be:\n* D;A, B, and C in group D\n* G;A, E, and F in group G\n\nThere are three types of identifiers in the Droplit system: IDs, aliases, and domains.\n\n# IDs\n\nIDs in the Droplit system are strings of letters (both uppercase or lowercase) and numbers, used to identify an object. All objects must have IDs. IDs are not explicitly meant to be human-readable, and are always unique because they are system-generated.\n\nIDs must meet the following format requirements:\n* Between 1 and 24 characters\n* Only contains characters:\n * “a-z”\n * “A-Z”\n * “0-9”\n * “_” (underscore)\n* No spaces\n\nIDs are also case-sensitive.\n\n# Aliases\n\nAn alias is a human-readable name (pseudonym) used for an object. They have the same format requirements as IDs, and like IDs are case-sensitive.\n\nAliases can be used in place of an ID, as long as the alias is properly associated with the ID and the object the ID references. They must also be unique in their context, like an ID.\n\nAny object which can support an alias contains an “alias” property. The alias is considered to be defined if the property is not null. An established alias can be removed by setting the “alias” property to null.\n\nAliases may be prefixed by a “:::at:::” symbol when referred to inside the system. For example, an alias called “thing1” could be referenced as “@thing1”. The “@” prefix is optional for all current uses, but may become required in the future.\n\n# Domains\n\nA domain is an alias for a top-level object. The format for a domain has slightly different format requirements than other identifiers, as below:\n\n* Between 1 and 24 characters\n* Only contains characters:\n * “a-z”\n * “0-9”\n * “-” (hyphen)\n* No spaces","excerpt":"","slug":"identifiers","type":"basic","title":"Identifiers"}
# Overview All objects in the Droplit system must have identifiers. Every identifier should be unique in the Droplit system, and each identifer must be unique in the context in which it resides. For example, consider two groups of identifers. * A, B, and C in group D * A, E, and F in group G Identifiers B, C, E, and F are unique, regardless of what group they are in. They are the most robust kind of identifier, because they do not require any other information to uniquely identify or access them. Identifier A in group D, and identifier A in group G, are also valid, because they are unique in their groups. However, they require further context, defining what group they reside in, to clearly state which identifier is being referred to. In the Droplit system, this is called a scoped reference. To distinguish identifiers by their context, use a semicolon, as “CONTEXT;IDENTIFIER.” Taking scoped references into account, the groups of identifiers, when identified uniquely, would be: * D;A, B, and C in group D * G;A, E, and F in group G There are three types of identifiers in the Droplit system: IDs, aliases, and domains. # IDs IDs in the Droplit system are strings of letters (both uppercase or lowercase) and numbers, used to identify an object. All objects must have IDs. IDs are not explicitly meant to be human-readable, and are always unique because they are system-generated. IDs must meet the following format requirements: * Between 1 and 24 characters * Only contains characters: * “a-z” * “A-Z” * “0-9” * “_” (underscore) * No spaces IDs are also case-sensitive. # Aliases An alias is a human-readable name (pseudonym) used for an object. They have the same format requirements as IDs, and like IDs are case-sensitive. Aliases can be used in place of an ID, as long as the alias is properly associated with the ID and the object the ID references. They must also be unique in their context, like an ID. Any object which can support an alias contains an “alias” property. The alias is considered to be defined if the property is not null. An established alias can be removed by setting the “alias” property to null. Aliases may be prefixed by a “@” symbol when referred to inside the system. For example, an alias called “thing1” could be referenced as “@thing1”. The “@” prefix is optional for all current uses, but may become required in the future. # Domains A domain is an alias for a top-level object. The format for a domain has slightly different format requirements than other identifiers, as below: * Between 1 and 24 characters * Only contains characters: * “a-z” * “0-9” * “-” (hyphen) * No spaces