-
Notifications
You must be signed in to change notification settings - Fork 98
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
feat: new permission system #5674
Draft
n1ru4l
wants to merge
12
commits into
rfc-permission-overhaul
Choose a base branch
from
feat-granular-permission-layer
base: rfc-permission-overhaul
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
+1,057
−312
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
n1ru4l
force-pushed
the
rfc-permission-overhaul
branch
from
October 15, 2024 08:12
1b41b90
to
6f3cabc
Compare
n1ru4l
force-pushed
the
feat-granular-permission-layer
branch
from
October 15, 2024 08:12
08eb367
to
c770272
Compare
🐋 This PR was built and pushed to the following Docker images (tag: Docker Bake metadata{
"app": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/oidhitk9hzq28weotekoyf4ib",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:d8613c1653d63f9f8eadc31a0d90ffb323fe501397a1202483f29955bfc8018e",
"size": 685
},
"containerimage.digest": "sha256:d8613c1653d63f9f8eadc31a0d90ffb323fe501397a1202483f29955bfc8018e",
"image.name": "ghcr.io/graphql-hive/app:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/app:feat_granular_permission_layer"
},
"buildx.build.warnings": [
{
"vertex": "sha256:ce4c5132096d53aeb79dedefd4df13c84bba7b1158fe5227f5c6183dd166ab17",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRSRUxFQVNFJyAobGluZSAxMik=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IGNhLWNlcnRpZmljYXRlcwoKV09SS0RJUiAvdXNyL3NyYy9hcHAKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkVOViBFTlZJUk9OTUVOVCBwcm9kdWN0aW9uCkVOViBOT0RFX0VOViBwcm9kdWN0aW9uCkVOViBSRUxFQVNFICRSRUxFQVNFCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 12
},
"end": {
"line": 12
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "TGVnYWN5S2V5VmFsdWVGb3JtYXQ6ICJFTlYga2V5PXZhbHVlIiBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGxlZ2FjeSAiRU5WIGtleSB2YWx1ZSIgZm9ybWF0IChsaW5lIDIxKQ==",
"detail": [
"TGVnYWN5IGtleS92YWx1ZSBmb3JtYXQgd2l0aCB3aGl0ZXNwYWNlIHNlcGFyYXRvciBzaG91bGQgbm90IGJlIHVzZWQ="
],
"url": "https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 21
},
"end": {
"line": 21
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRQT1JUJyAobGluZSAyMik=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 22
},
"end": {
"line": 22
}
}
]
},
{
"vertex": "sha256:ce4c5132096d53aeb79dedefd4df13c84bba7b1158fe5227f5c6183dd166ab17",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9USVRMRScgKGxpbmUgMTUp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IGNhLWNlcnRpZmljYXRlcwoKV09SS0RJUiAvdXNyL3NyYy9hcHAKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkVOViBFTlZJUk9OTUVOVCBwcm9kdWN0aW9uCkVOViBOT0RFX0VOViBwcm9kdWN0aW9uCkVOViBSRUxFQVNFICRSRUxFQVNFCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 15
},
"end": {
"line": 15
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "TGVnYWN5S2V5VmFsdWVGb3JtYXQ6ICJFTlYga2V5PXZhbHVlIiBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGxlZ2FjeSAiRU5WIGtleSB2YWx1ZSIgZm9ybWF0IChsaW5lIDIwKQ==",
"detail": [
"TGVnYWN5IGtleS92YWx1ZSBmb3JtYXQgd2l0aCB3aGl0ZXNwYWNlIHNlcGFyYXRvciBzaG91bGQgbm90IGJlIHVzZWQ="
],
"url": "https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 20
},
"end": {
"line": 20
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRSRUxFQVNFJyAobGluZSAyMSk=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 21
},
"end": {
"line": 21
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRSRUxFQVNFJyAobGluZSAxMyk=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 13
},
"end": {
"line": 13
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9ERVNDUklQVElPTicgKGxpbmUgMTQp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 14
},
"end": {
"line": 14
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "TGVnYWN5S2V5VmFsdWVGb3JtYXQ6ICJFTlYga2V5PXZhbHVlIiBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGxlZ2FjeSAiRU5WIGtleSB2YWx1ZSIgZm9ybWF0IChsaW5lIDIyKQ==",
"detail": [
"TGVnYWN5IGtleS92YWx1ZSBmb3JtYXQgd2l0aCB3aGl0ZXNwYWNlIHNlcGFyYXRvciBzaG91bGQgbm90IGJlIHVzZWQ="
],
"url": "https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 22
},
"end": {
"line": 22
}
}
]
},
{
"vertex": "sha256:ce4c5132096d53aeb79dedefd4df13c84bba7b1158fe5227f5c6183dd166ab17",
"level": 1,
"short": "TGVnYWN5S2V5VmFsdWVGb3JtYXQ6ICJFTlYga2V5PXZhbHVlIiBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGxlZ2FjeSAiRU5WIGtleSB2YWx1ZSIgZm9ybWF0IChsaW5lIDEwKQ==",
"detail": [
"TGVnYWN5IGtleS92YWx1ZSBmb3JtYXQgd2l0aCB3aGl0ZXNwYWNlIHNlcGFyYXRvciBzaG91bGQgbm90IGJlIHVzZWQ="
],
"url": "https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IGNhLWNlcnRpZmljYXRlcwoKV09SS0RJUiAvdXNyL3NyYy9hcHAKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkVOViBFTlZJUk9OTUVOVCBwcm9kdWN0aW9uCkVOViBOT0RFX0VOViBwcm9kdWN0aW9uCkVOViBSRUxFQVNFICRSRUxFQVNFCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 10
},
"end": {
"line": 10
}
}
]
},
{
"vertex": "sha256:ce4c5132096d53aeb79dedefd4df13c84bba7b1158fe5227f5c6183dd166ab17",
"level": 1,
"short": "TGVnYWN5S2V5VmFsdWVGb3JtYXQ6ICJFTlYga2V5PXZhbHVlIiBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGxlZ2FjeSAiRU5WIGtleSB2YWx1ZSIgZm9ybWF0IChsaW5lIDExKQ==",
"detail": [
"TGVnYWN5IGtleS92YWx1ZSBmb3JtYXQgd2l0aCB3aGl0ZXNwYWNlIHNlcGFyYXRvciBzaG91bGQgbm90IGJlIHVzZWQ="
],
"url": "https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IGNhLWNlcnRpZmljYXRlcwoKV09SS0RJUiAvdXNyL3NyYy9hcHAKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkVOViBFTlZJUk9OTUVOVCBwcm9kdWN0aW9uCkVOViBOT0RFX0VOViBwcm9kdWN0aW9uCkVOViBSRUxFQVNFICRSRUxFQVNFCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 11
},
"end": {
"line": 11
}
}
]
},
{
"vertex": "sha256:ce4c5132096d53aeb79dedefd4df13c84bba7b1158fe5227f5c6183dd166ab17",
"level": 1,
"short": "TGVnYWN5S2V5VmFsdWVGb3JtYXQ6ICJFTlYga2V5PXZhbHVlIiBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGxlZ2FjeSAiRU5WIGtleSB2YWx1ZSIgZm9ybWF0IChsaW5lIDEyKQ==",
"detail": [
"TGVnYWN5IGtleS92YWx1ZSBmb3JtYXQgd2l0aCB3aGl0ZXNwYWNlIHNlcGFyYXRvciBzaG91bGQgbm90IGJlIHVzZWQ="
],
"url": "https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IGNhLWNlcnRpZmljYXRlcwoKV09SS0RJUiAvdXNyL3NyYy9hcHAKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkVOViBFTlZJUk9OTUVOVCBwcm9kdWN0aW9uCkVOViBOT0RFX0VOViBwcm9kdWN0aW9uCkVOViBSRUxFQVNFICRSRUxFQVNFCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 12
},
"end": {
"line": 12
}
}
]
},
{
"vertex": "sha256:ce4c5132096d53aeb79dedefd4df13c84bba7b1158fe5227f5c6183dd166ab17",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9ERVNDUklQVElPTicgKGxpbmUgMTcp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IGNhLWNlcnRpZmljYXRlcwoKV09SS0RJUiAvdXNyL3NyYy9hcHAKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkVOViBFTlZJUk9OTUVOVCBwcm9kdWN0aW9uCkVOViBOT0RFX0VOViBwcm9kdWN0aW9uCkVOViBSRUxFQVNFICRSRUxFQVNFCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 17
},
"end": {
"line": 17
}
}
]
},
{
"vertex": "sha256:93857d7023e2648cd0a67d2e8728a1e14f80c791a96d3eec2920e141aa78453a",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9USVRMRScgKGxpbmUgMTIp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjguMC1zbGltCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IHdnZXQgY2EtY2VydGlmaWNhdGVzICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKQVJHIFNFUlZJQ0VfRElSX05BTUUKV09SS0RJUiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUKCkNPUFkgLS1mcm9tPWRpc3QgLiAvdXNyL3NyYy9hcHAvJFNFUlZJQ0VfRElSX05BTUUvCkNPUFkgLS1mcm9tPXNoYXJlZCAuIC8KCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcz1NSVQKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlPSRJTUFHRV9USVRMRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVyc2lvbj0kUkVMRUFTRQpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb249JElNQUdFX0RFU0NSSVBUSU9OCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5hdXRob3JzPSJUaGUgR3VpbGQiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZW5kb3I9IkthbWlsIEtpc2llbGEiCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5zb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsLWhpdmUvcGxhdGZvcm0iCgpFTlYgRU5WSVJPTk1FTlQgcHJvZHVjdGlvbgpFTlYgUkVMRUFTRSAkUkVMRUFTRQpFTlYgUE9SVCAkUE9SVAoKSEVBTFRIQ0hFQ0sgLS1pbnRlcnZhbD01cyBcCiAgLS10aW1lb3V0PTVzIFwKICAtLXN0YXJ0LXBlcmlvZD01cyBcCiAgLS1yZXRyaWVzPTYgXAogIENNRCAkSEVBTFRIQ0hFQ0tfQ01ECgpFTlRSWVBPSU5UIFsgIi9lbnRyeXBvaW50LnNoIiBdCg==",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 12
},
"end": {
"line": 12
}
}
]
}
],
"composition-federation-2": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/s4cm5g66h1mn24y0p6ri11210",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:293f95838d769eccff6ef2985d9b991d6332c9fd801691e661b4a2da6a04c8fc",
"size": 685
},
"containerimage.digest": "sha256:293f95838d769eccff6ef2985d9b991d6332c9fd801691e661b4a2da6a04c8fc",
"image.name": "ghcr.io/graphql-hive/composition-federation-2:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/composition-federation-2:feat_granular_permission_layer"
},
"emails": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/s2fx21kgm7st6eb13zq2b2l5z",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:9dbe32652af667e74a7a476c1c2458f21691b44a6648dd4ac593fcf87881ca48",
"size": 685
},
"containerimage.digest": "sha256:9dbe32652af667e74a7a476c1c2458f21691b44a6648dd4ac593fcf87881ca48",
"image.name": "ghcr.io/graphql-hive/emails:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/emails:feat_granular_permission_layer"
},
"policy": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/o6xf0241lslxp1on3rz6d2ik3",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:e72669ae9da1d9248def2008bb245fb5ba2a719407ee378d1f00ea9991fff9fa",
"size": 685
},
"containerimage.digest": "sha256:e72669ae9da1d9248def2008bb245fb5ba2a719407ee378d1f00ea9991fff9fa",
"image.name": "ghcr.io/graphql-hive/policy:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/policy:feat_granular_permission_layer"
},
"rate-limit": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/ze2h75utpvjrp8lygk1oec0tb",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:f3a7aee4be522748ae118e8a2a5f5771768eac0ccdadb2e993d8958fa6df7f03",
"size": 685
},
"containerimage.digest": "sha256:f3a7aee4be522748ae118e8a2a5f5771768eac0ccdadb2e993d8958fa6df7f03",
"image.name": "ghcr.io/graphql-hive/rate-limit:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/rate-limit:feat_granular_permission_layer"
},
"schema": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/r48zfzonjzf33r38iakg63eak",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:76b0c1235eda7a6a54090e52dacd82139e8e716cddff54c8a4b5b961d069ed7c",
"size": 685
},
"containerimage.digest": "sha256:76b0c1235eda7a6a54090e52dacd82139e8e716cddff54c8a4b5b961d069ed7c",
"image.name": "ghcr.io/graphql-hive/schema:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/schema:feat_granular_permission_layer"
},
"server": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/5xes8kuj7pwpzbc2krf6mmgba",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:19ffe7fed86505f7cc9eeb3170e974638d4e19990524bd28cf21d743bbe3404e",
"size": 685
},
"containerimage.digest": "sha256:19ffe7fed86505f7cc9eeb3170e974638d4e19990524bd28cf21d743bbe3404e",
"image.name": "ghcr.io/graphql-hive/server:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/server:feat_granular_permission_layer"
},
"storage": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/503w4293e1614422xhehkmu6z",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:7bcaa971a37e0bf8be9b5fdb59b63490aaff046570bc85b9a075ea5d009315e9",
"size": 685
},
"containerimage.digest": "sha256:7bcaa971a37e0bf8be9b5fdb59b63490aaff046570bc85b9a075ea5d009315e9",
"image.name": "ghcr.io/graphql-hive/storage:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/storage:feat_granular_permission_layer"
},
"stripe-billing": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/sf6o86vcla7lh4souvcgaixpu",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:15c2a6cd49271ae846aac91c8144225c246959852804b8b3db840862966ddaa5",
"size": 685
},
"containerimage.digest": "sha256:15c2a6cd49271ae846aac91c8144225c246959852804b8b3db840862966ddaa5",
"image.name": "ghcr.io/graphql-hive/stripe-billing:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/stripe-billing:feat_granular_permission_layer"
},
"tokens": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/m6naqnrqrnxhb9c15jpefu3oz",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:423db20425a51ec74829127f1ebb98cc87edf0f36aa88eb050731ee089ddf2b3",
"size": 685
},
"containerimage.digest": "sha256:423db20425a51ec74829127f1ebb98cc87edf0f36aa88eb050731ee089ddf2b3",
"image.name": "ghcr.io/graphql-hive/tokens:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/tokens:feat_granular_permission_layer"
},
"usage": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/4pleh0zpudxw7l2b4c1o7ty62",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:cdde06be4187a366924a1f1c1cbdac2271da09fc3775d5e5aa2f51da6606938b",
"size": 685
},
"containerimage.digest": "sha256:cdde06be4187a366924a1f1c1cbdac2271da09fc3775d5e5aa2f51da6606938b",
"image.name": "ghcr.io/graphql-hive/usage:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/usage:feat_granular_permission_layer"
},
"usage-estimator": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/tnzbyzjg2a7x5uwhkenzedk5k",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:4be1d41e8ac67436094994eed1096f00d5518f6bcc83c582f3f96bfd37e529cb",
"size": 685
},
"containerimage.digest": "sha256:4be1d41e8ac67436094994eed1096f00d5518f6bcc83c582f3f96bfd37e529cb",
"image.name": "ghcr.io/graphql-hive/usage-estimator:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/usage-estimator:feat_granular_permission_layer"
},
"usage-ingestor": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/eqq7zuby5dt8ztwm2oceq1er8",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:856e16a9da29ab339740eba1352cf14f5122b81030a99b37d206b07ab1af4efe",
"size": 685
},
"containerimage.digest": "sha256:856e16a9da29ab339740eba1352cf14f5122b81030a99b37d206b07ab1af4efe",
"image.name": "ghcr.io/graphql-hive/usage-ingestor:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/usage-ingestor:feat_granular_permission_layer"
},
"webhooks": {
"buildx.build.ref": "builder-199682c0-a089-4f9b-8f77-e186d5717750/builder-199682c0-a089-4f9b-8f77-e186d57177500/x5rabix5msq2r2zwz9vqrtakb",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:39655959ffbe34af140bfabb18f4e84d58c85f0cd3655f3e4ae427b8ad7037ad",
"size": 685
},
"containerimage.digest": "sha256:39655959ffbe34af140bfabb18f4e84d58c85f0cd3655f3e4ae427b8ad7037ad",
"image.name": "ghcr.io/graphql-hive/webhooks:cb209f0f0df6d65ee702f72d3acf6e2d420aca3d,ghcr.io/graphql-hive/webhooks:feat_granular_permission_layer"
}
} |
n1ru4l
force-pushed
the
feat-granular-permission-layer
branch
4 times, most recently
from
October 15, 2024 10:43
f8e838b
to
8e467c2
Compare
saihaj
reviewed
Oct 16, 2024
saihaj
reviewed
Oct 16, 2024
saihaj
approved these changes
Oct 16, 2024
n1ru4l
force-pushed
the
rfc-permission-overhaul
branch
from
October 21, 2024 10:05
af6b3df
to
91af087
Compare
n1ru4l
force-pushed
the
feat-granular-permission-layer
branch
from
October 21, 2024 10:06
8e467c2
to
1e4fbeb
Compare
n1ru4l
force-pushed
the
feat-granular-permission-layer
branch
from
October 22, 2024 09:09
e03c912
to
fbbdc3d
Compare
n1ru4l
force-pushed
the
feat-granular-permission-layer
branch
2 times, most recently
from
October 22, 2024 12:39
d2c3178
to
01add13
Compare
n1ru4l
force-pushed
the
feat-granular-permission-layer
branch
from
October 22, 2024 12:45
01add13
to
fb1236f
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
See #5668
Description
This PR introduces the new hive resource identifier format for the GraphQL API service and translates legacy permissions (super tokens session + registry access tokens) to the new format.
It is one step for gradually introducing the new organization scoped access tokens and further rolling out this new permission system to all other services.
Hive Resource Identifier Specification
hrn:<organization id>:<resource type>/<resource scope>
hrn
: Prefix (Hive Resource Identifier)<organization id>
: ID of the organization<resource type
: The resource type, currently eithertarget
,organization
,project,
cdn
,permissions
, orusers
<resource scope>
: a way to scope to a specific target or project, usually a UUID, but can also be a more complex path that is separated by/
.Checklist