masks-server 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/masks/server/enrollments_controller.rb +66 -0
  3. data/app/controllers/masks/server/introspections_controller.rb +2 -2
  4. data/app/controllers/masks/server/registrations_controller.rb +31 -1
  5. data/app/graphql/masks/server/manage/types/client_type.rb +8 -0
  6. data/app/graphql/masks/server/manage/types/query_type.rb +6 -1
  7. data/app/helpers/masks/server/application_helper.rb +0 -1
  8. data/app/helpers/masks/server/scopes_helper.rb +28 -0
  9. data/app/jobs/masks/server/cleanup_job.rb +1 -0
  10. data/app/models/masks/server/client.rb +81 -1
  11. data/app/models/masks/server/client_keys.rb +6 -1
  12. data/app/models/masks/server/enrollment_token.rb +54 -0
  13. data/app/models/masks/server/event.rb +3 -0
  14. data/app/models/masks/server/issuer.rb +1 -0
  15. data/app/models/masks/server/namespace.rb +6 -3
  16. data/app/models/masks/server/replay.rb +22 -4
  17. data/app/models/masks/server/token.rb +1 -0
  18. data/app/views/layouts/masks/server/manage.html.erb +2 -2
  19. data/app/views/masks/server/application/_person.html.erb +1 -1
  20. data/app/views/masks/server/handshakes/show.html.erb +129 -59
  21. data/config/locales/de/account.yml +1 -1
  22. data/config/locales/de/events.yml +5 -2
  23. data/config/locales/de/flashes.yml +2 -2
  24. data/config/locales/de/handshakes.yml +33 -14
  25. data/config/locales/de/mailers.yml +1 -1
  26. data/config/locales/de/manage/activity.yml +2 -2
  27. data/config/locales/de/manage/actor.yml +41 -23
  28. data/config/locales/de/manage/actors.yml +16 -15
  29. data/config/locales/de/manage/api.yml +1 -1
  30. data/config/locales/de/manage/app.yml +6 -6
  31. data/config/locales/de/manage/client.yml +45 -45
  32. data/config/locales/de/manage/clients.yml +28 -32
  33. data/config/locales/de/manage/connections.yml +2 -2
  34. data/config/locales/de/manage/consents.yml +2 -2
  35. data/config/locales/de/manage/device.yml +7 -7
  36. data/config/locales/de/manage/devices.yml +18 -18
  37. data/config/locales/de/manage/directory.yml +1 -1
  38. data/config/locales/de/manage/domains.yml +6 -6
  39. data/config/locales/de/manage/emails.yml +4 -4
  40. data/config/locales/de/manage/events.yml +3 -0
  41. data/config/locales/de/manage/groups.yml +6 -6
  42. data/config/locales/de/manage/ldap.yml +8 -8
  43. data/config/locales/de/manage/namespaces.yml +1 -1
  44. data/config/locales/de/manage/organization.yml +15 -8
  45. data/config/locales/de/manage/organizations.yml +3 -3
  46. data/config/locales/de/manage/policies.yml +6 -6
  47. data/config/locales/de/manage/policy_rules.yml +1 -1
  48. data/config/locales/de/manage/presence.yml +6 -6
  49. data/config/locales/de/manage/providers.yml +70 -48
  50. data/config/locales/de/manage/provisioning.yml +4 -4
  51. data/config/locales/de/manage/senders.yml +1 -1
  52. data/config/locales/de/manage/settings.yml +37 -26
  53. data/config/locales/de/manage/settings_shell.yml +2 -2
  54. data/config/locales/de/refusals.yml +5 -5
  55. data/config/locales/en/account.yml +3 -3
  56. data/config/locales/en/events.yml +4 -1
  57. data/config/locales/en/flashes.yml +3 -3
  58. data/config/locales/en/handshakes.yml +33 -14
  59. data/config/locales/en/logins.yml +2 -2
  60. data/config/locales/en/manage/actor.yml +32 -14
  61. data/config/locales/en/manage/actors.yml +16 -15
  62. data/config/locales/en/manage/app.yml +5 -5
  63. data/config/locales/en/manage/client.yml +9 -9
  64. data/config/locales/en/manage/clients.yml +8 -12
  65. data/config/locales/en/manage/connections.yml +1 -1
  66. data/config/locales/en/manage/consents.yml +1 -1
  67. data/config/locales/en/manage/device.yml +1 -1
  68. data/config/locales/en/manage/devices.yml +1 -1
  69. data/config/locales/en/manage/directory.yml +1 -1
  70. data/config/locales/en/manage/domains.yml +6 -6
  71. data/config/locales/en/manage/emails.yml +4 -4
  72. data/config/locales/en/manage/events.yml +3 -0
  73. data/config/locales/en/manage/groups.yml +6 -6
  74. data/config/locales/en/manage/ldap.yml +8 -8
  75. data/config/locales/en/manage/messages.yml +1 -1
  76. data/config/locales/en/manage/namespaces.yml +1 -1
  77. data/config/locales/en/manage/organization.yml +16 -9
  78. data/config/locales/en/manage/organizations.yml +3 -3
  79. data/config/locales/en/manage/policies.yml +6 -6
  80. data/config/locales/en/manage/policy_rules.yml +2 -2
  81. data/config/locales/en/manage/presence.yml +1 -1
  82. data/config/locales/en/manage/providers.yml +70 -48
  83. data/config/locales/en/manage/provisioning.yml +4 -4
  84. data/config/locales/en/manage/senders.yml +2 -2
  85. data/config/locales/en/manage/settings.yml +34 -23
  86. data/config/locales/es/account.yml +1 -1
  87. data/config/locales/es/application.yml +1 -1
  88. data/config/locales/es/events.yml +4 -1
  89. data/config/locales/es/flashes.yml +4 -4
  90. data/config/locales/es/handshakes.yml +33 -14
  91. data/config/locales/es/logins.yml +12 -12
  92. data/config/locales/es/mailers.yml +7 -7
  93. data/config/locales/es/manage/activity.yml +2 -2
  94. data/config/locales/es/manage/actor.yml +33 -15
  95. data/config/locales/es/manage/actors.yml +17 -16
  96. data/config/locales/es/manage/api.yml +1 -1
  97. data/config/locales/es/manage/app.yml +6 -6
  98. data/config/locales/es/manage/client.yml +30 -30
  99. data/config/locales/es/manage/clients.yml +22 -26
  100. data/config/locales/es/manage/connections.yml +1 -1
  101. data/config/locales/es/manage/consents.yml +1 -1
  102. data/config/locales/es/manage/device.yml +1 -1
  103. data/config/locales/es/manage/directory.yml +1 -1
  104. data/config/locales/es/manage/domains.yml +5 -5
  105. data/config/locales/es/manage/emails.yml +7 -7
  106. data/config/locales/es/manage/events.yml +3 -0
  107. data/config/locales/es/manage/groups.yml +6 -6
  108. data/config/locales/es/manage/ldap.yml +8 -8
  109. data/config/locales/es/manage/namespaces.yml +1 -1
  110. data/config/locales/es/manage/organization.yml +16 -9
  111. data/config/locales/es/manage/organizations.yml +3 -3
  112. data/config/locales/es/manage/policies.yml +8 -8
  113. data/config/locales/es/manage/policy_rules.yml +2 -2
  114. data/config/locales/es/manage/providers.yml +70 -48
  115. data/config/locales/es/manage/provisioning.yml +4 -4
  116. data/config/locales/es/manage/senders.yml +1 -1
  117. data/config/locales/es/manage/settings.yml +38 -27
  118. data/config/locales/es/manage/settings_shell.yml +2 -2
  119. data/config/locales/es/refusals.yml +3 -3
  120. data/config/locales/fr/events.yml +3 -0
  121. data/config/locales/fr/flashes.yml +1 -1
  122. data/config/locales/fr/handshakes.yml +33 -14
  123. data/config/locales/fr/manage/activity.yml +4 -4
  124. data/config/locales/fr/manage/actor.yml +43 -25
  125. data/config/locales/fr/manage/actors.yml +22 -21
  126. data/config/locales/fr/manage/api.yml +1 -1
  127. data/config/locales/fr/manage/app.yml +7 -7
  128. data/config/locales/fr/manage/client.yml +50 -50
  129. data/config/locales/fr/manage/clients.yml +28 -32
  130. data/config/locales/fr/manage/connections.yml +2 -2
  131. data/config/locales/fr/manage/consents.yml +1 -1
  132. data/config/locales/fr/manage/device.yml +1 -1
  133. data/config/locales/fr/manage/directory.yml +1 -1
  134. data/config/locales/fr/manage/domains.yml +6 -6
  135. data/config/locales/fr/manage/emails.yml +5 -5
  136. data/config/locales/fr/manage/events.yml +3 -0
  137. data/config/locales/fr/manage/groups.yml +6 -6
  138. data/config/locales/fr/manage/ldap.yml +8 -8
  139. data/config/locales/fr/manage/namespaces.yml +1 -1
  140. data/config/locales/fr/manage/organization.yml +15 -8
  141. data/config/locales/fr/manage/organizations.yml +3 -3
  142. data/config/locales/fr/manage/policies.yml +6 -6
  143. data/config/locales/fr/manage/policy_rules.yml +1 -1
  144. data/config/locales/fr/manage/providers.yml +70 -48
  145. data/config/locales/fr/manage/provisioning.yml +4 -4
  146. data/config/locales/fr/manage/senders.yml +1 -1
  147. data/config/locales/fr/manage/settings.yml +38 -27
  148. data/config/locales/fr/manage/settings_shell.yml +2 -2
  149. data/config/routes.rb +2 -0
  150. data/config/vite.json +1 -0
  151. data/db/migrate/20261011190000_add_enrolled_by_to_clients.rb +5 -0
  152. data/db/migrate/20261012100000_create_replays.rb +23 -0
  153. data/public/masks-assets/.vite/manifest-assets.json +1 -0
  154. data/public/masks-assets/.vite/manifest.json +62 -0
  155. data/public/masks-assets/assets/app-DoQZrM_J.css +2 -0
  156. data/public/masks-assets/assets/console-DoyNbIw3.css +1 -0
  157. data/public/masks-assets/assets/handshake-DIFZPSAK.js +2 -0
  158. data/public/masks-assets/assets/handshake-DIFZPSAK.js.map +1 -0
  159. data/public/masks-assets/assets/manage-isLCrWiU.js +567 -0
  160. data/public/masks-assets/assets/manage-isLCrWiU.js.map +1 -0
  161. data/version.txt +1 -1
  162. metadata +14 -7
  163. data/public/masks-assets/assets/app-olx-5PkA.css +0 -2
  164. data/public/masks-assets/assets/console-CiuQ3qj0.css +0 -1
  165. data/public/masks-assets/assets/handshake-BYhhQ_X3.js +0 -2
  166. data/public/masks-assets/assets/handshake-BYhhQ_X3.js.map +0 -1
  167. data/public/masks-assets/assets/manage-Z3GmPDNQ.js +0 -560
  168. data/public/masks-assets/assets/manage-Z3GmPDNQ.js.map +0 -1
@@ -39,7 +39,7 @@ en:
39
39
  taken: "That %{provider} account is already connected to somebody else here."
40
40
 
41
41
  delegations:
42
- unknown: "There is no such application using that account."
42
+ unknown: "There is no such app using that account."
43
43
  stopped: "%{client} can no longer use your %{provider} account."
44
44
 
45
45
  passkeys:
@@ -113,7 +113,7 @@ en:
113
113
  expired: "That sign-in stopped waiting. Ask for a new code on the other screen."
114
114
  too_many_attempts: "Too many attempts. Wait a few minutes and try again."
115
115
  approved: "Sign-in approved."
116
- denied: "Sign-in denied."
116
+ denied: "Sign-in refused."
117
117
 
118
118
  passwords:
119
119
  too_many_attempts: "Too many attempts. Wait a few minutes and try again."
@@ -138,7 +138,7 @@ en:
138
138
  sent: "A confirmation link is on its way to %{email}."
139
139
 
140
140
  avatars:
141
- updated: "Your photo has been updated."
141
+ updated: "Your photo has been changed."
142
142
  removed: "Your photo has been removed."
143
143
 
144
144
  handshakes:
@@ -1,12 +1,32 @@
1
1
  en:
2
2
  handshakes:
3
3
  show:
4
- page_title: "Register a new client"
5
- page_title_again: "Replace an existing client"
6
- title: "Register a new client?"
7
- title_again: "Replace an existing client?"
8
- lede_html: "Approving registers <strong>%{name}</strong> for everyone on %{tenant} and allows only your account."
9
- lede_again_html: "Approving replaces <strong>%{name}</strong> for everyone on %{tenant} and allows only your account."
4
+ page_title: "Connect %{name}"
5
+ page_title_again: "Reconnect %{name}"
6
+ title: "Connect %{name} to %{tenant}?"
7
+ title_again: "Reconnect %{name}?"
8
+ runs_at: "Runs at"
9
+ lede_html: "People will be able to sign in to <strong>%{name}</strong> with their %{tenant} account. For now only you are allowed in, and you choose who else gets in later."
10
+ lede_again_html: "<strong>%{name}</strong> is already connected to %{tenant}. Reconnecting sets it up again. For now only you are allowed in, and you choose who else gets in later."
11
+ stops_working: "The current %{name} connection stops working."
12
+ connected_by_you: "You connected %{name} on %{date}."
13
+ connected_by: "%{who} connected %{name} on %{date}."
14
+ signed_in_as: "You are approving as"
15
+ unconfirmed: "(email not confirmed yet)"
16
+ check: "Look at these first"
17
+ heed:
18
+ offline_access: "%{name} can keep people signed in without asking again, until they sign out."
19
+ delegates_title: "Ask people to connect their other accounts"
20
+ delegates: "Each person chooses for themselves. %{name} can then use those accounts while they are away."
21
+ delegate: "%{name} can use that account while you are away, until you stop it."
22
+ manage: "Anyone who signs in through %{name} can change every setting on this server."
23
+ sees: "%{name} can see"
24
+ area: "%{name}'s own permissions"
25
+ area_says_html: "%{name} gets its own set of permissions, named %{namespaces}. You decide who gets them."
26
+ area_yours: " You get all of them now."
27
+ also: "%{name} can also"
28
+ details: "Technical details"
29
+ scopes: "Scopes"
10
30
  client: "Credentials"
11
31
  credentials:
12
32
  public: "Public. It holds no secret."
@@ -16,24 +36,23 @@ en:
16
36
  replaced: "The %{name} client %{who} approved on %{date}. Its current credentials stop working."
17
37
  you: "you"
18
38
  someone: "somebody"
19
- may_ask: "May ask for"
20
39
  manage_warning: "masks:manage lets anyone who signs in through %{name} change every setting on this server."
21
40
  beneath:
22
- one: "What that covers today (1)"
23
- other: "What that covers today (%{count})"
41
+ one: "What they cover today (1)"
42
+ other: "What they cover today (%{count})"
24
43
  signs_in_at: "Signs in at"
25
44
  claims: "Claims"
26
45
  claimed: "%{namespaces} becomes %{name}'s, and you are granted it now."
27
- details: "Additional details"
28
46
  origin: "From"
29
47
  redirect_uris: "Redirect URIs"
30
48
  returns: "Returns to"
31
49
  auth_method: "Authenticates with"
32
50
  backchannel: "Backchannel logout"
33
- register: "Register and allow"
34
- register_in: "Register and allow in %{seconds}"
35
- replace: "Replace and allow"
36
- replace_in: "Replace and allow in %{seconds}"
51
+ after_sign_out: "After sign-out, returns to"
52
+ connect: "Connect %{name}"
53
+ connect_in: "Connect %{name} in %{seconds}"
54
+ reconnect: "Reconnect %{name}"
55
+ reconnect_in: "Reconnect %{name} in %{seconds}"
37
56
  cancel: "Cancel"
38
57
 
39
58
  refused:
@@ -226,7 +226,7 @@ en:
226
226
  invalid-backup-code: "That backup code is not valid."
227
227
  invalid-passkey: "That passkey could not be used."
228
228
  factor-not-offered: "That way of signing in is not offered here."
229
- approval-denied: "That sign-in was denied from a trusted device."
229
+ approval-denied: "That sign-in was refused from a trusted device."
230
230
  passkey-expired: "That passkey attempt expired. Try again."
231
231
  passkey-unverified: "That passkey did not ask who you are. Use one that checks a PIN or fingerprint."
232
232
  passkey-unusable: "That passkey could not be added."
@@ -269,4 +269,4 @@ en:
269
269
  notices:
270
270
  reset-sent: "If that account exists, a reset link is on its way."
271
271
  organization-sign-in: "That organization asks you to sign in another way."
272
- sso-claiming: "An account here already holds that address. Sign in to it once and the two are linked."
272
+ sso-claiming: "An account here already holds that address. Sign in to it once and the two are connected."
@@ -18,7 +18,7 @@ en:
18
18
  left_group: "Out of %{group}."
19
19
  joined_group: "In %{group}."
20
20
  profile_saved: "Profile saved."
21
- scopes_updated: "Scopes updated."
21
+ scopes_updated: "Scopes changed."
22
22
  codes_generated: "Backup codes generated. They are shown once and never again."
23
23
  emailed: "Emailed. The link is not shown here, so that using it proves the address."
24
24
  no_mailer: "No mailer is configured, so pass this link along yourself. It works once."
@@ -27,11 +27,11 @@ en:
27
27
  confirm_question: "Send a confirmation link for this address? Any earlier one stops working."
28
28
  remove_passkey_question: "Remove the passkey “%{label}”?"
29
29
  passkey_removed: "Passkey removed."
30
- photo_updated: "Photo updated."
30
+ photo_updated: "Photo changed."
31
31
  remove_photo_question: "Remove this actor's photo?"
32
32
  photo_removed: "Photo removed."
33
33
  disable_question: "Remove this actor's authenticator app and every backup code?"
34
- authenticator_removed: "Authenticator removed."
34
+ authenticator_removed: "Authenticator app removed."
35
35
  factors:
36
36
  email:
37
37
  name: "Email codes"
@@ -44,11 +44,11 @@ en:
44
44
  suspend_question: "Suspend %{identifier}? They are signed out everywhere, every token they hold stops working, and they cannot sign in until they are restored."
45
45
  suspended: "Suspended."
46
46
  restored: "Restored. They can sign in again."
47
- delete_question: "Delete %{identifier}? Their sessions, tokens, passkeys, consents and avatar go with them. There is no undo, and nothing is kept."
47
+ delete_question: "Delete %{identifier}? Their sessions, tokens, passkeys, consents, and photo go with them. There is no undo, and nothing is kept."
48
48
  missing: "There is no such actor."
49
49
  back: "Actors"
50
- signed_in_lede: "Signed in %{when}."
51
- invited_lede: "Invited, and has not accepted yet."
50
+ signed_in_lede: "signed in %{when}"
51
+ invited_lede: "invited, has not signed in yet"
52
52
  never: "never"
53
53
  link_once: "This link works once."
54
54
  write_down: "Write these down. They are not recoverable."
@@ -69,11 +69,10 @@ en:
69
69
  remove_photo: "Remove photo"
70
70
  uploading: "Uploading..."
71
71
  scopes: "Scopes"
72
- access: "Access"
73
72
  suspended_on: "Suspended %{day}. They cannot sign in."
74
73
  restore: "Restore"
75
74
  provisioned_as: "Provisioned as"
76
- provider_may_change: "The identity provider may change or suspend this actor too."
75
+ provider_may_change: "The directory that provisioned them may change or suspend them too."
77
76
  directory_provisioned: "%{organization}'s directory provisioned them as"
78
77
  directory_may_change: "and may change them too."
79
78
  reset_password: "Reset password"
@@ -106,20 +105,39 @@ en:
106
105
  groups: "Groups"
107
106
  no_groups: "No groups yet."
108
107
  add_group: "Add one"
109
- group_labels: "Apps that ask for groups see %{labels}."
108
+ group_labels: "Clients that ask for groups see %{labels}."
110
109
  second_factor: "Second factor"
111
- authenticator_enabled:
112
- one: "Authenticator enabled. %{count} backup code remaining."
113
- other: "Authenticator enabled. %{count} backup codes remaining."
114
110
  generate: "Generate backup codes"
115
111
  remove_authenticator: "Remove authenticator app"
116
- password_only: "Password only — nothing enrolled."
112
+ password_only: "Password only. Nothing else is set up."
117
113
  factor_on: "%{name} on."
118
114
  turn_off: "Turn off %{name}"
119
115
  activity: "Activity"
120
116
  all_activity: "All activity"
121
117
  no_activity: "Nothing yet."
122
118
  danger: "Suspend or delete"
123
- yourself: "This is you — another manager has to do it."
119
+ yourself: "This is you. Another manager has to do it."
124
120
  suspend: "Suspend %{identifier}"
125
121
  delete: "Delete %{identifier}"
122
+ parts:
123
+ label: "Actor"
124
+ profile: "Profile"
125
+ access: "Access"
126
+ sign_in: "Sign-in"
127
+ activity: "Activity"
128
+ scopes_lede: "The most any token for this actor can hold. Losing masks:manage takes effect at once."
129
+ groups_lede: "A client that asks for the groups scope receives these in a groups claim."
130
+ provisioned: "Provisioned"
131
+ consents_lede: "Clients this actor has allowed in, with the scopes each one was given."
132
+ connections_lede: "Accounts elsewhere this actor signs in with, through a provider."
133
+ password: "Password"
134
+ password_lede: "A reset sends a link. Every session and refresh token ends when it is used."
135
+ password_invited: "They have not accepted their invitation yet."
136
+ authenticator: "Authenticator app"
137
+ backup_codes:
138
+ one: "%{count} backup code left"
139
+ other: "%{count} backup codes left"
140
+ tokens_lede: "Access and refresh tokens issued to clients for this actor."
141
+ photo_lede: "Identicons and initials are drawn. An uploaded photo takes their place."
142
+ change_photo: "Change photo"
143
+ danger_lede: "Suspending signs them out everywhere and keeps everything for a restore. Deleting removes them for good."
@@ -1,9 +1,20 @@
1
1
  en:
2
2
  manage:
3
3
  actors:
4
+ marks:
5
+ manager: "Holds a manage scope"
6
+ second_factor:
7
+ one: "Uses an authenticator app, %{count} backup code left"
8
+ other: "Uses an authenticator app, %{count} backup codes left"
9
+ invited: "Invited, has not signed in yet"
10
+ unconfirmed: "Email not confirmed"
11
+ waiting: "Waiting for a manager's approval"
12
+ help: "Asked for help signing in"
13
+ suspended: "Suspended"
14
+ blocked: "A device is blocked"
4
15
  invite_many: "Invite many"
5
16
  invites:
6
- title: "Invite many people"
17
+ title: "Invite many actors"
7
18
  lede: "Paste addresses separated by lines, spaces, or commas. Each new address gets an invitation."
8
19
  addresses: "Email addresses"
9
20
  groups: "Put them in"
@@ -13,7 +24,7 @@ en:
13
24
  other: "%{count} invited"
14
25
  outcomes:
15
26
  invited: "invited"
16
- exists: "already has an account"
27
+ exists: "is already an actor"
17
28
  invalid: "is not an address masks can invite"
18
29
  title: "Actors"
19
30
  lenses:
@@ -25,8 +36,6 @@ en:
25
36
  suspended: "Suspended"
26
37
  columns:
27
38
  actor: "Actor"
28
- scopes: "Scopes"
29
- second_factor: "Second factor"
30
39
  signed_in_on: "Signed in on"
31
40
  last_seen: "Last seen"
32
41
  sessions:
@@ -47,15 +56,15 @@ en:
47
56
  minimum: "At least %{count} characters, and you will know it."
48
57
  scopes: "Scopes"
49
58
  adding: "Adding..."
50
- create: "Create the account"
59
+ create: "Add actor"
51
60
  invite: "Send the invitation"
52
61
  cancel: "Cancel"
53
62
  created:
54
- account: "Account created"
63
+ account: "Actor added"
55
64
  invitation: "Invitation sent"
56
65
  can_sign_in: "%{identifier} can sign in now."
57
66
  confirm_link: "This link confirms their address:"
58
- emailed: "Emailed — accepting it proves the address."
67
+ emailed: "Emailed. Accepting it proves the address."
59
68
  pass_along: "Pass this link along yourself. It works once."
60
69
  empty:
61
70
  search: "No actor matches \"%{search}\"."
@@ -66,13 +75,5 @@ en:
66
75
  suspended: "Nobody is suspended."
67
76
  everyone: "Nobody can sign in yet. Add the first actor."
68
77
  no_email: "no email"
69
- unconfirmed: "unconfirmed"
70
- invited: "invited"
71
78
  last_seen: "Last seen %{when}"
72
79
  never: "never"
73
- authenticator: "authenticator"
74
- blocked: "blocked"
75
- backup_codes:
76
- one: "%{count} backup code"
77
- other: "%{count} backup codes"
78
- password: "password"
@@ -2,8 +2,8 @@ en:
2
2
  manage:
3
3
  app:
4
4
  waiting:
5
- one: "%{count} person is waiting on you"
6
- other: "%{count} people are waiting on you"
5
+ one: "%{count} actor is waiting on you"
6
+ other: "%{count} actors are waiting on you"
7
7
  missing: "There is no page at this address."
8
8
  account: "Account"
9
9
  starting: "Starting"
@@ -19,6 +19,6 @@ en:
19
19
  clients: "Clients"
20
20
  limited:
21
21
  read: "You can read everything here and change nothing."
22
- support: "You can help people with their accounts. Settings, keys, and other managers need an owner."
23
- security: "You can change keys, apps, providers, and policies. People's accounts need support or an owner."
24
- both: "You can change settings and help people. Other managers and tenant settings need an owner."
22
+ support: "You can help actors. Settings, keys, and other managers need an owner."
23
+ security: "You can change keys, clients, providers, and policies. Actors need support or an owner."
24
+ both: "You can change settings and help actors. Other managers and tenant settings need an owner."
@@ -51,7 +51,7 @@ en:
51
51
  restored: "Restored."
52
52
  archived: "Archived."
53
53
  rotated: "A new secret was issued."
54
- groups: "Who may sign in is updated."
54
+ groups: "Who may sign in is changed."
55
55
  unattended_on: "It can ask for a token of its own now, with client_credentials."
56
56
  unattended_off: "It can no longer ask for a token of its own."
57
57
  subject: "Saved. Everybody has a new identifier at this client."
@@ -62,7 +62,7 @@ en:
62
62
  attributes_default: "It is sent the usual attributes."
63
63
  signs_assertions: "It signs its own assertions now. Its secret no longer works."
64
64
  uses_secret: "It uses a secret now. Rotate one to hand it."
65
- grants: "Grants updated."
65
+ grants: "Grants changed."
66
66
  entity_id: "Entity ID saved."
67
67
  certificate_saved: "Certificate saved."
68
68
  certificate_removed: "Certificate removed."
@@ -70,7 +70,7 @@ en:
70
70
  signed_read: "Unsigned requests are read."
71
71
  idp_initiated_on: "Actors can be signed into it from masks, without it asking."
72
72
  idp_initiated_off: "It is signed into only when it asks."
73
- policy: "Policy updated."
73
+ policy: "Policy changed."
74
74
  par_on: "PAR required. Plain /authorize links are refused."
75
75
  par_off: "PAR optional."
76
76
  dpop_on: "Its access tokens are bound to its key. A token without a proof is refused."
@@ -81,11 +81,11 @@ en:
81
81
  access_default: "Access tokens last an hour."
82
82
  refresh_days: "Refresh tokens last %{days} days unused."
83
83
  refresh_default: "Refresh tokens last 30 days unused."
84
- consent_days: "Each consent lasts %{days} days, then the person is asked again."
84
+ consent_days: "Each consent lasts %{days} days, then the actor is asked again."
85
85
  consent_default: "Consent lasts until revoked."
86
86
  jar_on: "Signed requests required. An unsigned /authorize or pushed request is refused."
87
87
  jar_off: "Signed requests optional."
88
- scopes: "Scopes updated."
88
+ scopes: "Scopes changed."
89
89
  redirects: "Redirect URIs saved."
90
90
  post_logout: "Post-logout URIs saved."
91
91
  resources: "Resources saved."
@@ -95,7 +95,7 @@ en:
95
95
  declared: "Those declarations are not JSON."
96
96
  attributes: "Write one attribute = claim on each line."
97
97
  confirm:
98
- subject: "Everybody gets a different identifier at this client. It will not recognise anybody it already knows. Change it?"
98
+ subject: "Everybody gets a different identifier at this client. It will not recognize anybody it already knows. Change it?"
99
99
  restore: "Restore this client? It can sign actors in again immediately."
100
100
  rotate: "Issue a new secret? The one in use stops working immediately."
101
101
  archive: "Archive this client? Nothing will be able to sign in with it."
@@ -106,7 +106,7 @@ en:
106
106
  registration:
107
107
  title: "Registration"
108
108
  name: "Name"
109
- saml: "A SAML application. It is signed into with an assertion, not a token."
109
+ saml: "A SAML client. It is signed into with an assertion, not a token."
110
110
  public: "A public client. It authenticates with nothing, and proves itself with PKCE."
111
111
  authenticates: "Authenticates with"
112
112
  needs_keys: "Give it keys under Keys, and it switches to signing its own assertions."
@@ -128,7 +128,7 @@ en:
128
128
  requests_signed: "Refuse requests it did not sign"
129
129
  idp_initiated: "Let actors start from masks"
130
130
  slo_url: "Single logout URL"
131
- slo_url_hint: "When an actor who signed in to it signs out of masks, masks posts a signed LogoutRequest here. The app's own LogoutRequests are answered here too, and must be signed with its certificate."
131
+ slo_url_hint: "When an actor who signed in to it signs out of masks, masks posts a signed LogoutRequest here. The client's own LogoutRequests are answered here too, and must be signed with its certificate."
132
132
  shown:
133
133
  title: "Shown to actors"
134
134
  unapproved: "Nobody sees its logo until it is approved: a client that registered itself could borrow anybody's."
@@ -157,7 +157,7 @@ en:
157
157
  jar: "Require signed request objects (JAR)"
158
158
  groups:
159
159
  title: "Who may sign in"
160
- lede: "Everyone, or only people in the groups ticked here. An organization role written as key:role counts as a group."
160
+ lede: "Everyone, or only actors in the groups ticked here. An organization role written as key:role counts as a group."
161
161
  none: "No groups yet."
162
162
  add: "Add one"
163
163
  limit: "to limit who may sign in."
@@ -1,6 +1,10 @@
1
1
  en:
2
2
  manage:
3
3
  clients:
4
+ marks:
5
+ archived: "Archived"
6
+ dynamic: "Registered itself, not approved"
7
+ dynamic_approved: "Registered itself, then approved"
4
8
  title: "Clients"
5
9
  archived: "Archived"
6
10
  search: "Search clients"
@@ -12,14 +16,14 @@ en:
12
16
  kinds:
13
17
  service: "Signs in as itself"
14
18
  app: "Signs actors in"
15
- saml: "SAML app"
16
- preset: "A known app"
17
- app: "App"
19
+ saml: "Signs actors in over SAML"
20
+ preset: "A known product"
21
+ app: "Product"
18
22
  choose: "Choose one"
19
23
  address: "Its address"
20
24
  slug: "Name it uses for masks"
21
25
  hints:
22
- preset: "masks fills in its redirect URIs and scopes, and shows what to enter in the app. Name is optional here."
26
+ preset: "masks fills in its redirect URIs and scopes, and shows what to enter in its settings. Name is optional here."
23
27
  service: "It asks the token endpoint for its own token with client_credentials. No actor is behind it, so it never holds openid, profile, email or masks:manage."
24
28
  saml: "It sends actors here with a SAML AuthnRequest, and masks posts a signed assertion back. Paste its metadata to fill the rest in."
25
29
  app: "It sends actors to sign in and is handed a token on their behalf."
@@ -46,15 +50,7 @@ en:
46
50
  columns:
47
51
  name: "Name"
48
52
  resources: "Resources"
49
- source: "Source"
50
- namespaces: "Namespaces"
51
- scopes: "Scopes"
52
- approved_by: "Approved by"
53
53
  registered: "Registered"
54
- self_registered: "self-registered"
55
- approved: "approved"
56
- always: "always"
57
- on_request: "on request"
58
54
  empty:
59
55
  matches: "No client matches “%{query}”."
60
56
  archived_matches: "No archived client matches “%{query}”."
@@ -3,7 +3,7 @@ en:
3
3
  connections:
4
4
  stop_confirm: "Stop %{client} using this %{provider} account? It has to ask again."
5
5
  stopped: "%{client} can no longer use it."
6
- disconnect_confirm: "Disconnect %{held}? It stops signing anybody in until it is linked again, and every application using it stops."
6
+ disconnect_confirm: "Disconnect %{held}? It stops signing anybody in until it is connected again, and every client using it stops."
7
7
  disconnected: "Disconnected."
8
8
  empty: "Nothing connected."
9
9
  badges:
@@ -1,7 +1,7 @@
1
1
  en:
2
2
  manage:
3
3
  consents:
4
- revoke_confirm: "Cut %{held} off? Every refresh token it holds is revoked, and it has to ask again the next time somebody signs in."
4
+ revoke_confirm: "Revoke access for %{held}? Every refresh token it holds is revoked, and it has to ask again the next time somebody signs in."
5
5
  revoked: "Access revoked. It will have to ask again."
6
6
  empty: "None."
7
7
  revoke: "Revoke access"
@@ -9,7 +9,7 @@ en:
9
9
  block_question: "Block %{label}? It is refused before any password is checked."
10
10
  unblocked: "%{label} is unblocked."
11
11
  signed_out: "Signed %{label} out everywhere."
12
- sign_out_question: "Sign every account out of %{label}?"
12
+ sign_out_question: "Sign every actor out of %{label}?"
13
13
  facts:
14
14
  kind: "Kind"
15
15
  ip_address: "IP address"
@@ -54,6 +54,6 @@ en:
54
54
  newest: "Only the newest %{count} are shown."
55
55
  choose: "Choose %{label}"
56
56
  blocked: "blocked"
57
- unrecognised: "unrecognised"
57
+ unrecognised: "unrecognized"
58
58
  signed_in: "signed in"
59
59
  nobody_yet: "nobody yet"
@@ -2,4 +2,4 @@ en:
2
2
  manage:
3
3
  directory:
4
4
  title: "Directory"
5
- lede: "Other systems that keep this tenant's people: an identity provider that provisions them over SCIM, and older apps that read them over LDAP."
5
+ lede: "Other systems that keep this tenant's actors: a directory that provisions them over SCIM, and older services that read them over LDAP."
@@ -2,22 +2,22 @@ en:
2
2
  manage:
3
3
  domains:
4
4
  title: "Domains"
5
- help: "Claim a domain by publishing a TXT record. masks checks it every hour. Once it is proven, people who type an address there can go straight to a provider without a password, and sign-in can be served from a host inside it, such as login.example.com, once that host's DNS points here and it has a certificate. Each address is its own issuer, and a passkey works only on the address it was made on."
5
+ help: "Claim a domain by publishing a TXT record. masks checks it every hour. Once it is proven, actors who type an address there can go straight to a provider without a password, and sign-in can be served from a host inside it, such as login.example.com, once that host's DNS points here and it has a certificate. Each address is its own issuer, and a passkey works only on the address it was made on."
6
6
  claimed: "Publish the TXT record below, then check %{domain}."
7
7
  proven: "%{domain} is proven."
8
8
  unanswered: "No matching TXT record at %{name} yet. DNS can take a while to spread."
9
- routed_away: "People at %{domain} go to their provider now."
10
- routed_here: "People at %{domain} sign in here now."
9
+ routed_away: "Actors at %{domain} go to their provider now."
10
+ routed_here: "Actors at %{domain} sign in here now."
11
11
  served: "Sign-in is served from %{host} too."
12
12
  unserved: "Sign-in is no longer served from a custom domain."
13
- stop_confirm: "Stop serving %{host}? Apps that use it as their issuer stop working."
14
- release_confirm: "Release %{domain}? People with an address there sign in the usual way again."
13
+ stop_confirm: "Stop serving %{host}? Clients that use it as their issuer stop working."
14
+ release_confirm: "Release %{domain}? Actors with an address there sign in the usual way again."
15
15
  released: "%{domain} is released."
16
16
  here: "Sign in here"
17
17
  to: "Send to %{name}"
18
18
  missing: "Stopped answering %{since}"
19
19
  unproven: "Not proven"
20
- send: "Where people at %{domain} sign in"
20
+ send: "Where actors at %{domain} sign in"
21
21
  check: "Check"
22
22
  release: "Release %{domain}"
23
23
  record: "Publish this TXT record:"
@@ -2,8 +2,8 @@ en:
2
2
  manage:
3
3
  emails:
4
4
  list: "Emails"
5
- app: "The app being signed in to"
6
- no_app: "No app"
5
+ app: "The client being signed in to"
6
+ no_app: "No client"
7
7
  not_approved: "%{name} (not approved)"
8
8
  headed: "Headed by %{heading}, from %{from} to %{to}"
9
9
  no_sender: "no sender configured"
@@ -14,7 +14,7 @@ en:
14
14
  groups:
15
15
  sign_in:
16
16
  title: "While signing in"
17
- help: "Sent during a sign-in. When an app sent the person there, an approved app heads the email with its logo and name. A sign-in straight to the account page has no app, and the tenant heads it."
17
+ help: "Sent during a sign-in. When a client sent the actor there, an approved client heads the email with its logo and name. A sign-in straight to the account page has no client, and the tenant heads it."
18
18
  about: "About emails sent while signing in"
19
19
  manage:
20
20
  title: "From a manager"
@@ -22,7 +22,7 @@ en:
22
22
  about: "About emails sent from a manager"
23
23
  account:
24
24
  title: "From the account page"
25
- help: "Sent when a person changes their own account. The tenant heads these."
25
+ help: "Sent when an actor changes something on their account page. The tenant heads these."
26
26
  about: "About emails sent from the account page"
27
27
  system:
28
28
  title: "On its own"
@@ -6,3 +6,6 @@ en:
6
6
  more:
7
7
  one: "Show %{count} more"
8
8
  other: "Show %{count} more"
9
+ repeated:
10
+ one: "once"
11
+ other: "%{count} times"
@@ -2,14 +2,14 @@ en:
2
2
  manage:
3
3
  groups:
4
4
  title: "Groups"
5
- lede: "Named sets of people, such as admins or family. Apps that ask for the groups scope see each group a person is in, and an app can be limited to some groups. A group's key is what apps see, and it cannot change later. People join a group from their own page."
6
- added: "%{name} is ready. Add people from their own pages."
7
- delete_confirm: "Delete %{name}? Apps limited to it turn its people away."
5
+ lede: "Named sets of actors, such as admins or family. Clients that ask for the groups scope see each group an actor is in, and a client can be limited to some groups. A group's key is what clients see, and it cannot change later. Actors join a group from their own page."
6
+ added: "%{name} is ready. Add actors from their own pages."
7
+ delete_confirm: "Delete %{name}? Clients limited to it refuse its actors."
8
8
  deleted: "%{name} is deleted."
9
9
  people:
10
- one: "%{count} person"
11
- other: "%{count} people"
10
+ one: "%{count} actor"
11
+ other: "%{count} actors"
12
12
  delete: "Delete %{name}"
13
13
  new: "New group name"
14
14
  add: "Add"
15
- key: "Apps see it as %{key}."
15
+ key: "Clients see it as %{key}."
@@ -2,17 +2,17 @@ en:
2
2
  manage:
3
3
  ldap:
4
4
  title: "LDAP"
5
- lede: "Older apps such as NAS boxes, media servers, and hypervisors check passwords and read groups over LDAP. masks serves this tenant's people and groups to them read-only."
6
- revoke_confirm: "Revoke %{label}? Apps binding with it are refused from now on."
5
+ lede: "Older services such as NAS boxes, media servers, and hypervisors check passwords and read groups over LDAP. masks serves this tenant's actors and groups to them read-only."
6
+ revoke_confirm: "Revoke %{label}? Anything binding with it is refused from now on."
7
7
  revoked: "%{label} is revoked."
8
8
  serve:
9
9
  title: "Directory"
10
- help: "While this is off, no app can bind to or search this tenant's directory."
10
+ help: "While this is off, nothing can bind to or search this tenant's directory."
11
11
  "on": "Serve this tenant over LDAP"
12
- updated: "The directory is updated."
12
+ updated: "Directory changed."
13
13
  connect:
14
- title: "Connect an app"
15
- help: "Give the app this base DN, a bind DN, and its secret. The app searches ou=people and ou=groups, then binds as a person to check their password."
14
+ title: "Connect a service"
15
+ help: "Give the service this base DN, a bind DN, and its secret. The service searches ou=people and ou=groups, then binds as an actor to check their password."
16
16
  base_dn: "Base DN"
17
17
  address: "Address"
18
18
  port: "Port %{port}"
@@ -30,6 +30,6 @@ en:
30
30
  revoke: "Revoke"
31
31
  binds:
32
32
  title: "Password binds"
33
- help: "LDAP cannot ask for a second factor. An account that has one, or whose sign-in policy requires one, is refused unless a password alone is allowed here."
33
+ help: "LDAP cannot ask for a second factor. An actor who has one, or whose sign-in policy requires one, is refused unless a password alone is allowed here."
34
34
  password_only: "Allow a password alone over LDAP"
35
- updated: "Password binds are updated."
35
+ updated: "Password binds changed."
@@ -8,4 +8,4 @@ en:
8
8
  lede: "The services that deliver this tenant's email and SMS. Each kind sends through its primary service."
9
9
  templates:
10
10
  title: "Templates"
11
- lede: "What each email masks sends says, previewed as people receive it."
11
+ lede: "What each email masks sends says, previewed as it arrives."
@@ -2,7 +2,7 @@ en:
2
2
  manage:
3
3
  namespaces:
4
4
  title: "Namespaces"
5
- release_confirm: "Release %{name}? The next application to ask for it gets it, and the scopes beneath it stop meaning what they mean now."
5
+ release_confirm: "Release %{name}? The next client to ask for it gets it, and the scopes beneath it stop meaning what they mean now."
6
6
  released: "%{name} is free to be claimed again."
7
7
  columns:
8
8
  name: "Name"