Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase identifier length from 20 to 44 #139

Merged
merged 2 commits into from
Feb 7, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions rfcs/0139-longer-identifiers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# RFC 139 - Increase identifier length from 20 to 44
* Comments: [#139](https://api.github.com/repos/taskcluster/taskcluster-rfcs/pull/139), [Bug 1520579](https://bugzilla.mozilla.org/show_bug.cgi?id=1520579)
* Proposed by: @djmitche / @mitchhentges

# Summary

For identifiers that typically contain structure (vs. those containing only
slugid's), increase the maximum length from 22 to 40 characters, while ensuring
that we do not overflow AMQP routing key lengths.

## Motivation

We have an established pattern of encoding meaning into some identifiers, such as workerTypes (e.g., `aws-provisioner-v1/gecko-1-b-*`), but these are limited to 22 characters.
That is too short to encode much meaning.
We cannot allow arbitrary lengths, as these identifiers are included in AMQP routes which have a hard limit of 255 characters.
We can, however, allow more than 22 characters.

# Details

We will define two types of identifiers:

* "identifiers" -- up to 40 characters, generally containing human-readable identifiers
* `provisionerId`, `workerType`, `workerGroup`, `workerId`
* `schedulerId`
* `organization`, `repository` (in tc-github)

* "slugids" -- exactly 22 characters, always a slugid
* `taskGroupId`
* `taskId`

This change requires changes to schemas and API declarations in services in the monorepo, as well as to `aws-provisioner` and possibly `ec2-manager`, workers, and client libraries.
Much of this work has [already been done](https://github.com/taskcluster/taskcluster/pull/110) by @OjaswinM.

We already have checks on AMQP routing key lengths, and the increased length does not cause any failures in that code.

# Open Questions

TBD

# Implementation

* https://github.com/taskcluster/taskcluster/pull/110
* TBD