{"id":17687787,"url":"https://github.com/jkunze/docker-arknoid","last_synced_at":"2025-04-22T14:21:22.570Z","repository":{"id":66940581,"uuid":"536608371","full_name":"jkunze/docker-arknoid","owner":"jkunze","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-19T18:56:25.000Z","size":100,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T15:51:07.448Z","etag":null,"topics":["arks"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jkunze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-14T14:08:15.000Z","updated_at":"2024-08-17T12:17:17.000Z","dependencies_parsed_at":"2024-12-12T11:50:56.472Z","dependency_job_id":null,"html_url":"https://github.com/jkunze/docker-arknoid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkunze%2Fdocker-arknoid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkunze%2Fdocker-arknoid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkunze%2Fdocker-arknoid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkunze%2Fdocker-arknoid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jkunze","download_url":"https://codeload.github.com/jkunze/docker-arknoid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250255773,"owners_count":21400411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arks"],"created_at":"2024-10-24T11:23:03.245Z","updated_at":"2025-04-22T14:21:22.545Z","avatar_url":"https://github.com/jkunze.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# SYNOPSIS\narknoid - tool to create ARK (Archival Resource Key) identifiers\n\n# QUICK START\nIf your organization doesn't have a NAAN, request one here:\n\n    https://n2t.net/e/naan_request\n\nAfter you install docker on your host, build the arknoid container:\n\n    $ docker run -it -d --rm --name arknoid jakkbl/arknoid\n\nInitialize the system with your organization's 5-digit NAAN:\n\n    $ docker exec -it arknoid arknoid init 12345\n\nMint one ARK string with\n\n    $ docker exec -it arknoid arknoid mint 1\n\tark:12345/h74x54g19\n\nMint enough unique ARK strings to assign to your 35865 objects with\n\n    $ docker exec -it arknoid arknoid mint 36000 \u003e MyFirstARKs\n\nYou can mint over 70 million ARKs with one minter, and make as many minters\nas you want whenever you want. Your ARKs will be unique across all minters.\n\n# USAGE\n    arknoid [options] init NAAN\n    arknoid [options] mkminter [ NAAN[/Shoulder] ]\n    arknoid [options] mint [ Count [ FQShoulder ] ]\n    arknoid [options] testmint [ Count ]\n    arknoid [options] lsminter [ FQShoulder ... ]\n    arknoid [options] rmminter FQShoulder ...\n    arknoid [options] test\n    arknoid help\n\n# DESCRIPTION\nArchival Resource Keys (ARKs) are free, flexible, persistable identifiers.\nThis script is used to generate globally unique, opaque, random-looking\nARK strings that are suitable as persistent identifiers (PIDs). To create\nan ARK is to publicize the assignment to a thing (eg, for reference\npurposes) of a minted (generated) string. The less that that assignment is\npublicized, the easier it is to \"undo\" that act of ARK creation.\n\nTo ensure global uniqueness, the ARK namespace is divided into NAANs\n(Name Assigning Authority Numbers). NAANs can be divided into Shoulders,\nwhich are useful for delegating responsibility within each NAAN namespace.\nThe arknoid script creates each minter on its own Shoulder, which looks\nlike YOUR_NAAN/ED, where E is letter and D is a digit. Unless you specify\nit when making a minter, a random Shoulder will be created.\n\nTo run this script you will need a NAAN that will appear at the beginning\nof your ARKs. You may request a NAAN for your organization using the link\n\n    https://n2t.net/e/naan_request\n\nUse the \"init\" command to initialize the system once and for all with the\nNAAN (usually a 5-digit number) that you reserved for your institution or\nwith the test NAAN, 99999. For example,\n\n    arknoid init 12345\n\nThe \"mkminter\" command creates a minter of unique opaque strings consisting\nof digits, letters (betanumerics actually) and a final check character.\nWith no arugment, it creates a random shoulder using your NAAN, but you may\nalso specify a fully qualified shoulder of your choice. A Shoulder string\nmust start with one or more betanumeric letters (bcdfghjkmnpqrstvwxz) and\nend in a digit. The NAAN should be one that you have been assigned (eg,\n12345) via the global ARK NAAN registry. Each minter created with this\ncommand can generate 70,728,100 unique ARKs. As an example, to create a\nminter on the shoulder, 12345/r4, and then mint 6 ARKs, you could run\n\n    arknoid mkminter 12345/r4\n    arknoid mint 6 12345/r4\n\nThe \"mint\" command generates Count (default 1) strings suitable for ARK\nassignments from the \"fully qualified\" minter name, FQShoulder, which\nconsists of the NAAN, a '/', and the Shoulder string. The \"testmint\"\ncommand is simple shorthand to generate ARKs beginning with 99999,\nwhich recipients understand to be generally impersistent, untrustworthy,\nand for test purposes only.\n\nUse the \"lsminter\" command with FQShoulder arguments to check for the\nexistence of one or more minters, or use it with no arguments to list all\nminters available to you. Use the \"rmminter\" command to remove minters.\nThe \"test\" command verifies whether the software is working correctly and\nthe \"help\" command (the default command) outputs documentation.\n\nMost commands exit with zero status on success and non-zero on error.\nIt is possible to run init on more than one NAAN. This script uses the\nNoid (v0.424) software and adds several features such as default minter\nand shoulder choices, as well as default templates that conform to best\npractices for creating betanumeric ARKs with primordinal shoulders (that\nfollow the \"first digit convention\") and check characters.\n\n# ENVIRONMENT\nThis script was designed to run within its own docker container, although\nit should run on any system where the Noid software is installed.\n\nFrom a terminal window on a computer connected to the dockerhub ecosystem,\na running container can be downloaded and built with\n\n    $ docker run -it -d --rm --name arknoid jakkbl/arknoid\n\nThis command puts the container through a set of tests:\n\n    $ docker run -it jakkbl/arknoid arknoid test\n\nTo use a minter requires a one-time initialization of your NAAN, as in,\n\n    $ docker exec -it arknoid arknoid init 12345\n\nThe next command generates 3 strings suitable for assignment as ARKs:\n\n    $ docker exec -it arknoid arknoid mint 3\n\nThe next command opens an interactive shell into the container:\n\n    $ docker exec -it arknoid /bin/bash\n\nMinter state is preserved in the \"./minters/\" directory using a private\ndocker volume when the container is stopped and restarted, but state is\npurged when a container is rebuilt. You may be able to explore or export\nminter state using the interactive shell.\n\n# DEVELOPER\nThe arknoid code is maintained at github.com/jkunze/docker-arknoid.\nFrom within a cloned git repo, you can make changes, run tests,\nand open a shell with commands such as these.\n\n    $ docker compose build --no-cache arknoid\n    $ docker compose run arknoid arknoid test\n    $ docker compose run arknoid\n\n# LIMITATIONS\nIn being a simplified interface to the Noid software, this script uses\na fixed identifier template. As fo any Noid template, the algorithm runs\nout of identifier strings at a certain point. Newer, unlimited algorithms\nare under development and will be released to the ARK community, but there\nare no known plans to fundamentally change either this script or the Noid\nsoftware.\n\n# OPTIONS\n    -c on init, clear out any previous NAAN data\n    -f force run even if not inside a docker container\n    -h show help information\n    -v be more verbose\n\n# FILES\n    ./minters/ark/\u003cNAAN\u003e/\u003cShoulder\u003e   keeps current minters states\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkunze%2Fdocker-arknoid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjkunze%2Fdocker-arknoid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkunze%2Fdocker-arknoid/lists"}