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
@@ -4,7 +4,7 @@ en:
4
4
  title: "Organization"
5
5
  back: "Organizations"
6
6
  archived_lede: "Archived %{when}. Nobody signs in as a member of it."
7
- lede: "Apps name it with organization=%{key}, and tokens carry the member's role."
7
+ lede: "Clients name it with organization=%{key}, and tokens carry the member's role."
8
8
  lenses:
9
9
  all: "Everyone"
10
10
  owners: "Owners"
@@ -38,14 +38,14 @@ en:
38
38
  role_added: "%{organization} offers %{role} now."
39
39
  role_dropped: "%{organization} no longer offers %{role}."
40
40
  saved: "Saved."
41
- provider_saved: "Saved. People who sign in through it join this organization."
41
+ provider_saved: "Saved. Actors who sign in through it join this organization."
42
42
  provider_back: "%{provider} serves the whole tenant again."
43
43
  archived: "%{organization} is archived."
44
44
  restored: "%{organization} is back."
45
45
  questions:
46
46
  withdraw: "Withdraw the invitation to %{name}?"
47
47
  remove: "Remove %{name} from %{organization}? Their tokens for it stop working."
48
- hand_back: "Hand %{provider} back to the whole tenant? People who sign in through it stop joining %{organization}."
48
+ hand_back: "Hand %{provider} back to the whole tenant? Actors who sign in through it stop joining %{organization}."
49
49
  archive: "Archive %{organization}? This stops anyone signing in as a member."
50
50
  archive_tokens:
51
51
  one: "Archive %{organization}? This stops anyone signing in as a member and revokes its %{count} live token."
@@ -65,8 +65,8 @@ en:
65
65
  role: "Role"
66
66
  invite: "Invite"
67
67
  cancel: "Cancel"
68
- hint: "They join once they accept, from the address you invite. Someone without an account gets an invitation to make one."
69
- person: "Person"
68
+ hint: "They join once they accept, from the address you invite. Somebody who is not an actor yet gets an invitation to sign up."
69
+ person: "Actor"
70
70
  empty:
71
71
  invited: "No invitations are open."
72
72
  owners: "Nobody owns this organization. Make a member an owner so someone can manage it."
@@ -81,9 +81,9 @@ en:
81
81
  remove: "Remove"
82
82
  signing_in:
83
83
  title: "Signing in"
84
- lede: "A member signs in under this policy, ahead of the app's and the tenant's. It applies from the first step when the app names the organization."
84
+ lede: "A member signs in under this policy, ahead of the client's and the tenant's. It applies from the first step when the client names the organization."
85
85
  policy: "Sign-in policy"
86
- inherited: "The app's or the tenant's"
86
+ inherited: "The client's or the tenant's"
87
87
  providers: "Providers"
88
88
  no_groups_mapped: "No groups mapped"
89
89
  joins_as: "%{mapping}. Anyone else joins as %{role}."
@@ -94,13 +94,13 @@ en:
94
94
  groups_claim: "Groups claim"
95
95
  unmapped_role: "Role for anyone else"
96
96
  role_map: "Groups to roles"
97
- role_map_hint: "One group per line. The first group a person holds decides their role, on every sign-in."
97
+ role_map_hint: "One group per line. The first group an actor holds decides their role, on every sign-in."
98
98
  save: "Save"
99
99
  cancel: "Cancel"
100
100
  domains: "Domains"
101
101
  proven: "Proven %{day}"
102
102
  waiting: "Waiting for its DNS record"
103
- no_domains: "None proven. Until one of its providers proves a domain, owners can invite only the addresses sign-up admits, and a provisioning token cannot set email addresses."
103
+ no_domains: "None proven. Until one of its providers proves a domain, owners can invite only the addresses signup admits, and a provisioning token cannot set email addresses."
104
104
  domains_link: "Domains"
105
105
  provisioning: "Provisioning"
106
106
  tokens_reach:
@@ -130,3 +130,10 @@ en:
130
130
  one: "Archiving stops anyone signing in as a member of %{organization} and revokes its %{count} live token. Members keep their roles, so restoring it puts everything back."
131
131
  other: "Archiving stops anyone signing in as a member of %{organization} and revokes its %{count} live tokens. Members keep their roles, so restoring it puts everything back."
132
132
  button: "Archive %{organization}"
133
+ parts:
134
+ label: "Organization"
135
+ members: "Members"
136
+ sign_in: "Sign-in"
137
+ roles: "Roles"
138
+ activity: "Activity"
139
+ general: "General"
@@ -2,7 +2,7 @@ en:
2
2
  manage:
3
3
  organizations:
4
4
  title: "Organizations"
5
- lede: "The customers inside this tenant. An app that asks for the organization scope signs a person in as a member of one, and their token carries the role they hold there."
5
+ lede: "The customers inside this tenant. A client that asks for the organization scope signs an actor in as a member of one, and their token carries the role they hold there."
6
6
  columns:
7
7
  organization: "Organization"
8
8
  members: "Members"
@@ -17,12 +17,12 @@ en:
17
17
  add_lede: "You become its first owner, and can add members once it exists."
18
18
  name: "Name"
19
19
  key: "Key"
20
- key_hint: "An app asks for this organization with"
20
+ key_hint: "A client asks for this organization with"
21
21
  key_word: "key"
22
22
  key_hint_end: ". The key cannot change later."
23
23
  adding: "Adding..."
24
24
  cancel: "Cancel"
25
- empty: "No organizations yet. Add one for each customer whose people sign in together."
25
+ empty: "No organizations yet. Add one for each customer whose members sign in together."
26
26
  tenant_policy: "The tenant's policy"
27
27
  archived:
28
28
  title: "Archived"
@@ -35,7 +35,7 @@ en:
35
35
  signup_open: "signup open"
36
36
  invitation_only: "invitation only"
37
37
  second_factor_required: "second factor required"
38
- apps_require_second_factor: "second factor at every app sign-in"
38
+ apps_require_second_factor: "second factor at every sign-in to a client"
39
39
  lifetime: "sessions last %{duration}"
40
40
  idle: "idle after %{duration}"
41
41
  confirmed_by: "confirmed by %{confirmation}"
@@ -51,7 +51,7 @@ en:
51
51
  save: "Save"
52
52
  cancel: "Cancel"
53
53
  signup:
54
- legend: "Sign up"
54
+ legend: "Signup"
55
55
  open: "Open"
56
56
  email_domains: "Email domains"
57
57
  email_domains_placeholder: "any"
@@ -78,7 +78,7 @@ en:
78
78
  phone_verified: "Confirmed phone"
79
79
  no_sms: "No SMS service."
80
80
  sign_in:
81
- legend: "Sign in"
81
+ legend: "Sign-in"
82
82
  characters: "characters minimum"
83
83
  refuse_common: "Refuse common passwords"
84
84
  password_required: "Require a password at signup"
@@ -86,20 +86,20 @@ en:
86
86
  second_factor:
87
87
  legend: "Second factor"
88
88
  required: "Required for everyone, not just managers"
89
- apps: "Asked again at an app sign-in when the session did not use one"
89
+ apps: "Asked again at a sign-in to a client when the session did not use one"
90
90
  risk:
91
91
  legend: "Risk"
92
92
  step_up: "Ask for a second factor at a score of"
93
93
  refuse: "Refuse at"
94
94
  refuse_breached: "Refuse passwords found in known breaches"
95
- hint: "A sign-in scores up to 100: a new device 30, a new network 25, a risky network 50, repeated failures 20 or 40, an account dormant for six months 10, and a breached password 40. Breach checks send the first five characters of the password's SHA-1 hash, never the password."
95
+ hint: "A sign-in scores up to 100: a new device 30, a new network 25, a risky network 50, repeated failures 20 or 40, an actor dormant for six months 10, and a breached password 40. Breach checks send the first five characters of the password's SHA-1 hash, never the password."
96
96
  sessions:
97
97
  legend: "Sessions"
98
98
  last: "Last"
99
99
  after_sign_in: "after signing in"
100
100
  end_after: "End after"
101
101
  idle: "idle"
102
- hint: "Apps covered by this policy ask again once a session is older or has been idle longer, even one that started under another policy. A shorter session also ends the refresh tokens issued in it."
102
+ hint: "Clients covered by this policy ask again once a session is older or has been idle longer, even one that started under another policy. A shorter session also ends the refresh tokens issued in it."
103
103
  list:
104
104
  empty: "None yet. Clients use the built-in default."
105
105
  default: "Default"
@@ -34,7 +34,7 @@ en:
34
34
  one: "%{count} second"
35
35
  other: "%{count} seconds"
36
36
  terms:
37
- signup: "Sign up"
37
+ signup: "Signup"
38
38
  email_domains: "Email domains"
39
39
  hidden: "Hides who has an account"
40
40
  nickname: "Nickname"
@@ -47,7 +47,7 @@ en:
47
47
  password: "Password"
48
48
  second_factors: "Second factors"
49
49
  second_factor_required: "Second factor required"
50
- apps_require_second_factor: "Second factor at every app sign-in"
50
+ apps_require_second_factor: "Second factor at every sign-in to a client"
51
51
  session_lifetime: "Session lifetime"
52
52
  refuse_breached: "Refuses breached passwords"
53
53
  password_required: "Password required at signup"
@@ -11,7 +11,7 @@ en:
11
11
  last_seen: "Last seen %{when}"
12
12
  show_more: "Show %{count} more"
13
13
  blocked: "blocked"
14
- unrecognised: "unrecognised"
14
+ unrecognised: "unrecognized"
15
15
  sign_out: "Sign out"
16
16
  block: "Block"
17
17
  unblock: "Unblock"
@@ -29,7 +29,7 @@ en:
29
29
  notices:
30
30
  discovered: "Endpoints filled in from the discovery document."
31
31
  metadata_read: "Read the identity provider's entity, sign-in URL and certificates."
32
- registered: "%{name} is registered, and applications can be let use it."
32
+ registered: "%{name} is registered, and clients can use it."
33
33
  added: "%{name} can sign actors in now."
34
34
  saved: "%{name} saved."
35
35
  archived: "%{name} is archived."
@@ -39,10 +39,12 @@ en:
39
39
  archive: "Archive %{name}? Nobody can sign in with it until it is restored."
40
40
  register: "Register with %{name} again? Everybody connected to it has to connect again."
41
41
  picker:
42
- help: "Pick who actors will sign in with. Anything not listed speaks one of the three at the end."
42
+ help: "Pick who actors will sign in with. Anything not listed speaks one of the protocols under Anything else."
43
+ back: "Choose another"
44
+ known: "Known providers"
45
+ generic: "Anything else"
43
46
  form:
44
47
  add_title: "Add %{name}"
45
- edit_title: "Edit %{name}"
46
48
  guide_lead: "Register masks with %{name} first:"
47
49
  guide_link: "%{name}'s console"
48
50
  give: "Give %{name} these"
@@ -62,13 +64,13 @@ en:
62
64
  certificates: "Signing certificates"
63
65
  name_id_format: "Name ID format"
64
66
  mcp_url: "MCP server URL"
65
- mcp_hint: "masks finds the server's own authorization server from its protected resource metadata and registers itself there, so there is no client ID to copy. An MCP server never signs anybody in; it is only something applications can be let use."
67
+ mcp_hint: "masks finds the server's own authorization server from its protected resource metadata and registers itself there, so there is no client ID to copy. An MCP server never signs anybody in. Clients use it for an actor."
66
68
  issuer: "Issuer"
67
69
  discover: "Discover"
68
70
  authorization_url: "Authorization URL"
69
71
  token_url: "Token URL"
70
72
  userinfo_url: "Userinfo URL"
71
- emails_url: "Verified emails URL"
73
+ emails_url: "Emails URL"
72
74
  jwks_uri: "JWKS URI"
73
75
  optional: "optional"
74
76
  discovered_if_empty: "discovered if left empty"
@@ -91,66 +93,86 @@ en:
91
93
  subject_oidc: "Subject (sub or oid)"
92
94
  subject_path: "Subject path"
93
95
  attribute_name: "attribute name"
94
- applications: "Applications"
95
- delegates: "Let applications use somebody's %{name} account"
96
- provider: "provider"
97
- delegates_hint: "An approved application can ask an actor to let it act as them at %{name} while they are away. masks keeps the tokens, refreshes them, and hands each one only to the application that actor said yes to."
98
- delegated_scopes: "What applications may do"
96
+ delegates: "Let clients use an actor's %{name} account"
97
+ delegates_hint: "An approved client can ask an actor to let it act as them at %{name} while they are away. masks keeps the tokens, refreshes them, and hands each one only to the client that actor said yes to."
98
+ delegated_scopes: "What clients may do"
99
99
  server_grants: "whatever the server grants"
100
100
  delegation_params: "Extra parameters when connecting"
101
- delegation_asks: "An application asks for"
102
- delegation_reconnect: "Changing what applications may do asks everybody to connect again."
103
- signing_in: "Signing in"
104
- owns: "%{name} owns the account"
105
- this_provider: "This provider"
106
- owns_hint: "On, somebody new gets an account here, and their name, photo and address follow %{name} each time they sign in. Off, it is only another way into an account that already exists. Either way it stands in for a password, never for a second factor."
101
+ delegation_asks: "A client asks for"
102
+ delegation_reconnect: "Changing what clients may do asks everybody to connect again."
103
+ owns: "Add the actors it signs in"
104
+ owns_hint: "On, somebody new becomes an actor here, and their name, photo, and address follow %{name} each time they sign in. Off, it is only another way to sign in as an actor that already exists. Either way it stands in for a password, never for a second factor."
107
105
  trusts_email: "Trust the addresses it confirms"
108
106
  trusts_email_hint: "Only for a provider that really checks an actor holds the mailbox, as Google, Apple and GitHub do. Off, only addresses in the domains below are taken at its word."
109
107
  signals: "Accept its security events"
110
108
  signals_lead: "It sends shared signals to"
111
- signals_rest: "A session revoked, a credential changed, or an account disabled there signs the account out everywhere here."
109
+ signals_rest: "A session revoked, a credential changed, or an account disabled there signs the actor out everywhere here."
112
110
  saml_domains: "Email domains it answers for"
113
111
  domains: "Email domains"
114
112
  any_domain: "any domain"
115
- signup_scopes: "Scopes a new account holds"
113
+ signup_scopes: "Scopes a new actor holds"
116
114
  saving: "Saving..."
117
115
  add: "Add"
118
116
  save: "Save"
119
- empty: "No provider is set up. Add one and actors can sign in with Google, GitHub, their company's identity provider, or anything that speaks OpenID Connect, OAuth 2.0 or SAML."
120
- edit: "Edit"
117
+ empty: "No provider is set up. Add one and actors can sign in with Google, GitHub, Okta, Entra ID, or anything that speaks OpenID Connect, OAuth 2.0, or SAML."
121
118
  register: "Register again"
122
119
  archive: "Archive"
123
- badges:
124
- never_signs_in: "never signs in"
125
- owns_accounts: "owns accounts"
126
- existing_only: "existing accounts only"
127
- trusts_email: "trusts confirmed addresses"
128
- signals: "accepts security events"
129
- delegates: "applications can use it"
130
120
  facts:
131
- acs_url: "Assertion consumer service URL"
132
- redirect_uri: "Redirect URI"
133
- sp_entity_id: "Service provider entity ID"
134
- identity_provider: "Identity provider"
135
- metadata: "Metadata"
136
- metadata_read: "read %{day}"
121
+ metadata_read: "Metadata read %{day}."
137
122
  never: "never"
138
- pasted: "pasted, not refreshed"
139
- client_id: "Client ID"
140
- signing_key: "Signing key"
141
- secret: "Secret"
142
- held: "held"
143
- none_set: "none set"
144
- issuer: "Issuer"
145
- scopes: "Scopes asked upstream"
146
- mcp_server: "MCP server"
147
- registered: "Registered"
148
- delegation_scope: "Applications ask for"
149
- delegations: "Applications using it"
150
- delegated_scopes: "What applications may do"
151
- connections: "Connected accounts"
123
+ registered: "Registered with it %{day}."
152
124
  signed_in: "%{count} sign in with it"
153
- connected: "Who is connected (%{count})"
125
+ delegations_count:
126
+ one: "Clients hold %{count} delegation through it."
127
+ other: "Clients hold %{count} delegations through it."
154
128
  archived: "Archived"
155
129
  archived_on: "archived %{day}"
156
130
  restore: "Restore"
131
+ lede: "Other places actors sign in with, and MCP servers that clients can use for an actor."
132
+ back: "Providers"
133
+ copy: "Copy"
134
+ missing: "There is no provider with that key."
135
+ unsaved: "Unsaved changes"
136
+ discard: "Discard"
137
+ danger: "Archive"
138
+ danger_lede: "Nobody can sign in with it until it is restored."
139
+ danger_lede_mcp: "Registering again makes everybody connected to it connect again. Archiving stops it until it is restored."
140
+ columns:
141
+ provider: "Provider"
142
+ kind: "Kind"
143
+ connections: "Connected accounts"
144
+ roles:
145
+ owns: "adds the actors it signs in"
146
+ existing: "signs in existing actors only"
147
+ never: "never signs anybody in"
148
+ marks:
149
+ owns: "Adds the actors it signs in"
150
+ trusts_email: "Trusts the addresses it confirms"
151
+ signals: "Accepts its security events"
152
+ delegates: "Clients can use it for an actor"
153
+ no_secret: "No client secret is set"
154
+ parts:
155
+ label: "Provider"
156
+ setup: "Setup"
157
+ sign_in: "Sign-in"
158
+ clients: "Clients"
159
+ accounts: "Connected accounts (%{count})"
160
+ sections:
161
+ give_lede: "Register masks there with these, so it sends actors back here."
162
+ identity: "Name"
163
+ identity_lede: "The key is part of its redirect URI, so it cannot change once it is added."
164
+ endpoints: "Endpoints"
165
+ endpoints_oidc: "Discover fills these in from the issuer's discovery document."
166
+ credentials_lede: "What %{name} issued when masks was registered there."
167
+ mcp: "MCP server"
168
+ accounts: "Actors"
169
+ addresses: "Email addresses"
170
+ signals: "Security events"
171
+ claims_lede: "Which claim or attribute fills each part of an actor's profile."
172
+ delegation: "Delegation"
173
+ callouts:
174
+ archived: "Archived %{day}. Nobody can sign in with it."
175
+ no_secret: "No client secret is set"
176
+ no_secret_detail: "Enter what %{name} issued under Credentials."
177
+ organization_lead: "It belongs to"
178
+ organization_rest: "Actors who sign in through it join that organization."
@@ -2,7 +2,7 @@ en:
2
2
  manage:
3
3
  provisioning:
4
4
  title: "Provisioning"
5
- lede: "An identity provider adds, changes, suspends and removes actors here over SCIM 2.0."
5
+ lede: "A directory adds, changes, suspends, and removes actors here over SCIM 2.0."
6
6
  revoke_confirm: "Revoke %{label}? Whatever provisions with it is refused from now on."
7
7
  revoked: "%{label} is revoked."
8
8
  lifetimes:
@@ -10,12 +10,12 @@ en:
10
10
  quarter: "90 days"
11
11
  year: "A year"
12
12
  connect:
13
- title: "Connect a provider"
14
- help: "Give the provider this URL and a token. A provisioned actor is known by their email, which masks takes as confirmed, and signs in through a provider or an invitation. Nobody who holds a masks: scope has their password or email changed this way, and the last manager is never suspended or removed."
13
+ title: "Connect a directory"
14
+ help: "Give the directory this URL and a token. A provisioned actor is known by their email, which masks takes as confirmed, and signs in through a provider or an invitation. Nobody who holds a masks: scope has their password or email changed this way, and the last manager is never suspended or removed."
15
15
  base_url: "SCIM base URL"
16
16
  label: "Label"
17
17
  provisions: "Provisions"
18
- every_account: "Every account"
18
+ every_account: "Every actor"
19
19
  only_members: "Only members of %{name}"
20
20
  lifetime: "How long the token lives"
21
21
  issue: "Issue a token"
@@ -11,7 +11,7 @@ en:
11
11
  kinds:
12
12
  mail:
13
13
  title: "Mail"
14
- lede: "Invitations, resets, confirmations and codes. The primary one sends everything."
14
+ lede: "Invitations, resets, confirmations, and codes. The primary one sends everything."
15
15
  idle: "Nothing is emailed through a service of this tenant's own. Mail falls back to whatever the server was set up with, if anything."
16
16
  sms:
17
17
  title: "SMS"
@@ -25,7 +25,7 @@ en:
25
25
  name: "Name"
26
26
  optional: "%{label} (optional)"
27
27
  unchanged: "unchanged"
28
- primary: "Primary — send everything of this kind through it"
28
+ primary: "Primary, so everything of this kind sends through it"
29
29
  create: "Add"
30
30
  save: "Save"
31
31
  cancel: "Cancel"
@@ -16,13 +16,13 @@ en:
16
16
  detail: "Invitations, password resets, and sign-in codes go out by email. Until then, a manager passes each invitation link along by hand."
17
17
  action: "Add a mail service"
18
18
  client:
19
- title: "Connect your first app"
20
- detail: "Register an app by hand, or let one connect itself through the handshake."
21
- action: "Add an app"
19
+ title: "Register your first client"
20
+ detail: "Register a client by hand, or let one connect itself through the handshake."
21
+ action: "Add client"
22
22
  invite:
23
23
  title: "Invite someone"
24
- detail: "Each person gets an invitation to set up their own sign-in."
25
- action: "Invite people"
24
+ detail: "Each actor gets an invitation to set up their own sign-in."
25
+ action: "Invite actors"
26
26
  sign_ins:
27
27
  title: "Sign-ins"
28
28
  range: "Time range"
@@ -34,15 +34,14 @@ en:
34
34
  all: "All organizations"
35
35
  organization: "Organization"
36
36
  members: "Members"
37
- empty: "No organizations yet. Add one for each customer whose people sign in together, and apps that ask for the organization scope learn the role each person holds there."
37
+ empty: "No organizations yet. Add one for each customer whose members sign in together, and clients that ask for the organization scope learn the role each actor holds there."
38
38
  recent:
39
- worrying: "Worth a look"
40
- lately: "Lately"
41
39
  all: "All activity"
42
40
  empty: "Nothing yet."
41
+ title: "Activity"
43
42
  tenant:
44
43
  title: "Tenant"
45
- help: "The name heads every screen and email masks sends. Apps discover this tenant at its issuer, and the manage API answers at its resource."
44
+ help: "The name heads every screen and email masks sends. Clients discover this tenant at its issuer, and the manage API answers at its resource."
46
45
  name: "Name"
47
46
  renamed: "Renamed."
48
47
  subdomain: "Subdomain"
@@ -55,41 +54,41 @@ en:
55
54
  change_logo: "Change logo"
56
55
  upload_logo: "Upload a logo"
57
56
  remove: "Remove"
58
- logo_updated: "Logo updated."
57
+ logo_updated: "Logo changed."
59
58
  logo_removed: "Logo removed."
60
59
  accent: "Accent color"
61
- color_updated: "Color updated."
60
+ color_updated: "Color changed."
62
61
  color_reset: "Color reset."
63
62
  own: "Use masks' own"
64
63
  naming:
65
64
  title: "Primary identifier"
66
- help: "What a person types to sign in. Every policy has to require whichever this names."
65
+ help: "What an actor types to sign in. Every policy has to require whichever this names."
67
66
  nickname: "Nickname"
68
67
  email: "Email"
69
68
  either: "Either"
70
- updated: "Primary identifier updated."
69
+ updated: "Primary identifier changed."
71
70
  policy:
72
71
  title: "Default policy"
73
72
  help: "The sign-in policy for every client that has none of its own. Built-in offers passwords, passkeys, and providers, with an optional second factor."
74
73
  built_in: "Built-in"
75
- updated: "Default policy updated."
74
+ updated: "Default policy changed."
76
75
  access:
77
76
  title: "Who may sign in"
78
77
  help: "Browsers only refuses any sign-in from something that does not present itself as a browser. Refused user agents takes fragments, separated by commas, and refuses every user agent that contains one."
79
78
  browsers_only: "Browsers only"
80
79
  refused_agents: "Refused user agents"
81
- updated: "Sign-in rules updated."
80
+ updated: "Sign-in rules changed."
82
81
  risky_networks: "Risky networks"
83
82
  risky_hint: "Address ranges, one per line, that add to a sign-in's risk score. A sign-in policy decides what a score does."
84
83
  save_networks: "Save networks"
85
84
  networks_saved: "Risky networks saved."
86
85
  idle:
87
86
  title: "Auto-deletion"
88
- help: "An account nobody signs in to or uses through an app is suspended, then deleted, after these periods. Each step is warned by email at least 30 days ahead, and signing in before a suspension keeps the account. With Suspend set, only accounts suspended for being idle are deleted. With Suspend at Never, idle accounts are deleted directly. The last manager and accounts a provider provisions over SCIM are left alone."
87
+ help: "An actor nobody signs in as or uses through a client is suspended, then deleted, after these periods. Each step is warned by email at least 30 days ahead, and signing in before a suspension keeps the actor. With Suspend set, only actors suspended for being idle are deleted. With Suspend at Never, idle actors are deleted directly. The last manager and actors a directory provisions over SCIM are left alone."
89
88
  suspend: "Suspend"
90
89
  delete: "Delete"
91
- updated: "Auto-deletion updated."
92
- delete_confirm: "Delete idle accounts? A deleted account cannot be restored."
90
+ updated: "Auto-deletion changed."
91
+ delete_confirm: "Delete idle actors? A deleted actor cannot be restored."
93
92
  never: "Never"
94
93
  after_90_days: "After 90 days"
95
94
  after_180_days: "After 180 days"
@@ -98,7 +97,7 @@ en:
98
97
  after_three_years: "After three years"
99
98
  retention:
100
99
  title: "Activity"
101
- help: "How long masks keeps events. Older ones are deleted each night, and a shorter period takes effect at the next sweep. Export a range from Activity before shortening it."
100
+ help: "How long masks keeps activity. Older events are deleted each night, and a shorter period takes effect at the next sweep. Export a range from Activity before shortening it."
102
101
  updated: "Activity is kept for the new period."
103
102
  days_30: "30 days"
104
103
  days_90: "90 days"
@@ -108,12 +107,12 @@ en:
108
107
  seven_years: "Seven years"
109
108
  registration:
110
109
  title: "Dynamic registration"
111
- help: "Whether apps may register themselves over RFC 7591. A self-registered app is never approved, and with the limit on it may ask only for the scopes chosen here."
110
+ help: "Whether clients may register themselves over RFC 7591. A self-registered client is never approved, and with the limit on it may ask only for the scopes chosen here."
112
111
  "off": "Off"
113
112
  "on": "On"
114
113
  bounded: "On, limited to these scopes"
115
- updated: "Dynamic registration updated."
116
- ceiling_updated: "Ceiling updated."
114
+ updated: "Dynamic registration changed."
115
+ ceiling_updated: "Ceiling changed."
117
116
  keys:
118
117
  schedule: "Rotation"
119
118
  by_hand: "By hand"
@@ -122,7 +121,7 @@ en:
122
121
  other: "Every %{count} days"
123
122
  scheduled: "Rotation schedule saved. A new key is published a day before it signs."
124
123
  title: "Signing keys"
125
- help: "Every token is signed with the active key, and apps check it against the keys published at the JWKS endpoint. Stage a key to publish it a day before it signs, or rotate to switch at once. The outgoing key keeps verifying for 24 hours."
124
+ help: "Every token is signed with the active key, and clients check it against the keys published at the JWKS endpoint. Stage a key to publish it a day before it signs, or rotate to switch at once. The outgoing key keeps verifying for 24 hours."
126
125
  stage: "Stage"
127
126
  rotate: "Rotate now"
128
127
  key: "Key"
@@ -145,3 +144,15 @@ en:
145
144
  active: "active"
146
145
  retiring: "retiring"
147
146
  retired: "retired"
147
+ needs:
148
+ waiting:
149
+ one: "%{count} actor is waiting for approval"
150
+ other: "%{count} actors are waiting for approval"
151
+ help:
152
+ one: "%{count} actor asked for help signing in"
153
+ other: "%{count} actors asked for help signing in"
154
+ worrying:
155
+ one: "%{count} event in the last day is worth a look"
156
+ other: "%{count} events in the last day are worth a look"
157
+ latest: "The latest is %{label}, %{when}."
158
+ review: "Review"
@@ -150,7 +150,7 @@ es:
150
150
 
151
151
  organizations:
152
152
  heading: "Organizaciones"
153
- invited_by_manager: "Alguien invitado por un administrador"
153
+ invited_by_manager: "Alguien invitado por un gestor"
154
154
  role: "Eres %{role}"
155
155
  lede_owner: "Como propietario, decides quién pertenece aquí y qué rol tiene cada persona. Las aplicaciones que piden tu organización ven el rol."
156
156
  lede_member: "Las aplicaciones que piden tu organización ven que perteneces a ella y tu rol."
@@ -1,6 +1,6 @@
1
1
  es:
2
2
  application:
3
3
  person:
4
- manager: "Administrador"
4
+ manager: "Gestor"
5
5
  unconfirmed: "sin confirmar"
6
6
  sign_out: "Cerrar sesión"
@@ -65,7 +65,7 @@ es:
65
65
  refused: "Inicio de sesión de dispositivo rechazado"
66
66
  sign_in:
67
67
  approved: "Inicio de sesión aprobado desde un dispositivo de confianza"
68
- denied: "Inicio de sesión denegado desde un dispositivo de confianza"
68
+ denied: "Inicio de sesión rechazado desde un dispositivo de confianza"
69
69
  risky: "Inicio de sesión inusual"
70
70
  device:
71
71
  trusted: "Dispositivo de confianza"
@@ -112,6 +112,9 @@ es:
112
112
  restored: "Aplicación restaurada"
113
113
  secret_rotated: "Secreto de la aplicación rotado"
114
114
  logo_refused: "No se pudo usar el logotipo de la aplicación"
115
+ enrollment_issued: "Inscripción de máquina solicitada"
116
+ enrolled: "Máquina inscrita"
117
+ unenrolled: "Máquina dada de baja"
115
118
  token:
116
119
  revoked: "Token revocado"
117
120
  saml:
@@ -113,7 +113,7 @@ es:
113
113
  expired: "Ese inicio de sesión dejó de esperar. Pide un código nuevo en la otra pantalla."
114
114
  too_many_attempts: "Demasiados intentos. Espera unos minutos y vuelve a intentarlo."
115
115
  approved: "Inicio de sesión aprobado."
116
- denied: "Inicio de sesión denegado."
116
+ denied: "Inicio de sesión rechazado."
117
117
 
118
118
  passwords:
119
119
  too_many_attempts: "Demasiados intentos. Espera unos minutos y vuelve a intentarlo."
@@ -134,18 +134,18 @@ es:
134
134
  too_many_requests: "Demasiadas solicitudes. Espera unos minutos."
135
135
  no_address: "Esta cuenta no tiene ninguna dirección que confirmar."
136
136
  already_confirmed: "Esa dirección ya está confirmada."
137
- no_mailer: "Este servidor no puede enviar correo. Pregunta a un administrador."
137
+ no_mailer: "Este servidor no puede enviar correo. Pregunta a un gestor."
138
138
  sent: "Te enviamos un enlace de confirmación a %{email}."
139
139
 
140
140
  avatars:
141
- updated: "Se actualizó tu foto."
141
+ updated: "Se cambió tu foto."
142
142
  removed: "Se eliminó tu foto."
143
143
 
144
144
  handshakes:
145
145
  answered: "esa solicitud de conexión ya se respondió"
146
146
  none_in_progress: "no hay ninguna solicitud de conexión en curso"
147
147
  not_permitted: "esta cuenta no puede conectar aplicaciones"
148
- already_connected: "%{resource} ya está conectado; un administrador tiene que volver a conectarlo"
148
+ already_connected: "%{resource} ya está conectado; un gestor tiene que volver a conectarlo"
149
149
  beyond_account: "%{scopes} es más de lo que tiene esta cuenta"
150
150
  too_soon: "No se registró nada. Lee lo que pide y aprueba cuando termine la cuenta atrás."
151
151