Skip to content

dashboard@0.141.0

Choose a tag to compare

@gram-bot gram-bot released this 22 Oct 15:09
· 740 commits to main since this release
8979879

Minor Changes

  • 2fc006d: Identities now lists people from your directory who aren't members yet, with a Directory column and filter showing whether each person is a member, has an account but isn't a member, hasn't signed in, or shares an email with another profile. Team and the IDP and SSO tab show how many directory people aren't members yet, linking to that filtered list.
  • 98de4bb: Add a switch under the directory changes to review on the SSO page that turns admin emails about them on or off for the organization.
  • 1cf1228: Review directory changes on the SSO tab. When the directory gains a group or attribute value that may need a role, or loses one that still has roles, it is listed above the role mappings with what it affects. Map a new group or value to a role, leave it unmapped, or stop being asked about new values of an attribute; remove a missing source's roles or keep them for when it returns.
  • 8b6af9e: Set up directory role mappings in bulk from the SSO tab. "Set up in bulk" lists every group and attribute value with no role yet, proposes an existing role with the same name or a new role named after it, shows what access reused roles bring, and lets admins give new roles no access or a copy of another role's grants. Attributes with too many values to set up in bulk are named so they can be mapped one value at a time. Role chips in the mappings table no longer collapse into "N roles" after a mapping is saved or removed.
  • 993f47f: Show where the directory hands out each role on an MCP server's access list. Organization admins now see the directory groups and attribute values that give out a role under its name, and a source removed from the directory links to the review list on the IDP and SSO tab.
  • b772e91: Show connected tunnel agents, target network checks, and MCP request history in the dashboard. Agents report aggregate HTTP progress when a gateway with diagnostics enabled polls them without collecting payloads or making MCP calls. Existing agents continue forwarding traffic.

Patch Changes

  • 95df49e: Wherever the dashboard shows work an agent did for someone, it now names both: the agent, and the person whose authority it borrowed, on a second line beneath. Naming only the person hid that a machine made the call; naming only the agent hid who was accountable. An agent that acted on nobody's behalf is still shown alone.

    The agent setup wizard dropped its scope question, which offered a choice that changed nothing about what an agent could reach, and gained an All servers toggle in its place — which is how an agent that may use every server is actually described. Before, such an agent showed a warning and no way to see or change what it held. The last step is now called Install, since that is what it does.

    An agent's overview page shows what the agent has been doing — tool calls over time, the servers it used most, and who it has been acting for — instead of restating its configuration.

    Agent Sessions is a table with named columns. Activity and Messages sort from their own headers, ordering the whole list rather than the page in front of you, and the order is kept in the address so it can be shared.

    The people list leaves out anonymous identities unless you ask for them, and every alert now says how serious it is.

  • 16a18d2: Device agents polling with an agent API key now receive mcp_servers: the Speakeasy-hosted MCP servers in the plugins assigned to the agent, which the device writes into each tool's configuration with its own credential under a speakeasy-<slug> name that stays stable across polls. Servers in plugins offered as available, unproxied vendor servers and gateway members are left out. Each entry also names the token endpoint, assertion audience and, where needed, resource a headless device exchanges its workload identity at to reach the server; entries no workload grant reaches carry none. The list is always present and empty for people, and changes to it change the poll's ETag.

  • a335d3c: Hosted MCP plugin entries, install page metadata, and assistant attachments are now always written under the toolset's canonical MCP server, and the hosted-mcp-server-key-writes rollout flag is removed. That includes a canonical server that is disabled, and toolsets with MCP off or no MCP slug that have one. The plugin:server_add audit event for a hosted toolset names the MCP server. Adding a toolset that has no MCP server to a plugin, saving its install page metadata, or attaching it to an assistant now fails with "toolset has no hosted MCP server", and the Default plugin attach skips it. The Plugins page disables such toolsets in the server picker. Turning MCP on for a toolset now delivers its MCP server to matching role plugins, as enabling any other MCP server does; a removal recorded under either key still keeps it out. Readers still accept rows under either key. A toolset no longer reads install page metadata or headers stored under a server that holds its id but is not its canonical MCP server.

  • a8f0010: An MCP server's User Identity settings now say when its OAuth client also signs in other MCP servers, since changing or rotating that client changes their sign-in too.

  • ba8e729: A configured MCP server header can no longer read the caller's Authorization request header as its source. That header may carry the caller's Speakeasy credential, and must not be sent to an upstream MCP server under another name. Creating or updating such a header is refused, and the dashboard flags it while editing. At request time, an optional one is not sent and a required one fails the request. To pass a caller-supplied upstream credential through, read it from a separate request header; it can still be sent upstream as Authorization.

  • fb541e9: Find skills and registered agent identities by name in Command K and open their overview pages directly. Skill search includes all available pages of results, and agent identity search preserves existing access restrictions and keeps identity names out of intent-service requests.

  • 2ddcaa8: Keep dashboard pages usable when the API returns newer enum values, with safe display fallbacks and editing restrictions for unsupported settings. Grants with unknown scopes cannot authorize dashboard actions.

  • 1f98a3b: The stable device agent installer links move from /v1/install/ to /rpc/install/ (device-agent-macos.pkg and device-agent-windows.msi). Production never routed /v1/install to the server, so those links returned the dashboard's HTML, and the Windows setup step saved that page as speakeasy-agent.msi. The Windows step now uses the new link.

  • 548cd13: The Device Agent Linux steps now match the Linux install guide. The service step adds the systemd user unit to default.target, so the agent starts again after a reboot or logout. Before, it never came back. The step also turns on self-update for single machines through local.json and suggests lingering for machines nobody logs in to. The verify step points to the guide for the optional tray icon. The fleet identity step asks for a managed.json the user can read (0644, or 0640 with the user's group), and its troubleshooting note says to restart the agent after changing the file.

  • 548cd13: The example managed.json in the Device Agent setup now sets auto_update to "automatic" for macOS and Linux, so fleets that copy it get self-updating agents, matching the install steps and the docs. Windows keeps "notify" until its self-update is validated, and the onboarding MDM card, which covers every platform, says so.

  • 87683be: Keep the device agent off PATH in the Linux setup steps. Both binaries now go into ~/.local/state/speakeasy/bin without sudo, so they no longer overwrite another speakeasy binary in /usr/local/bin or share the SDK generator's ~/.speakeasy folder, and the agent can update itself there. The hooks find speakeasyd in that folder too, and in /opt/speakeasy/bin for root-owned fleet installs, so managed identity attribution works without it on PATH. The verify and personal enrollment steps call speakeasy status and speakeasy enroll by that path, which fixes the invalid speakeasyd status step. With a resolved version, the Linux and macOS install commands use no shell variables, and the macOS verify step no longer sets one, so they also run in fish. On macOS and Windows the install step now leads with deploying the pkg or msi through MDM, with single-machine and scripted installs collapsed underneath, and the manual download URL appears only when the version lookup fails. macOS verifies after sign-in by showing a picture of a healthy menu bar panel, with the troubleshooting and terminal checks collapsed.

  • 665df9c: Identities no longer shows a single "Enrolled" status, which meant different things on the list and the detail page. It now shows three separate facts, each with its own filter: in the synced directory, a member of the organization, and seen working through hooks or MCP. The identity detail page's Status panel answers each one on its own row.

  • fb3befd: Show directory groups that were deleted but still have roles mapped, so admins can remove those roles, and mark attribute values nobody holds any more. Team, Manage Roles and the role editor now name the groups a directory-mapped role comes from, including when the member also holds it directly, and match members to groups by group ID rather than name. The Roles list shows how many of a role's members hold it directly and how many only through directory mappings.

  • e537882: Show Enterprise Managed Authorization on an MCP server whenever Speakeasy's identity provider is rolled out, not only when the provider-list rollout is on.

  • a34c86a: Enterprise Managed Authorization is now its own section on a remote MCP server's settings. It reads as a chain: the sign-in, who vouches, what the service trusts, and the remote session client, each linking to where it is changed, with one Turn on or Turn off action. The Identity providers tab gains a Connected services table and a page per service with what the service trusts, the identity providers enabled for it (one checkbox each), and the servers that connect to it. The Speakeasy provider page lists the services that trust Speakeasy. When the server connection's scopes change after Enterprise Managed Authorization is on, the section says so and offers Apply connection scopes.

  • 30b88fd: Org Gateway now requires an administrator to opt in instead of becoming available automatically. Review organization-wide MCP access by role before enabling, inspect each person’s effective assignments, remove server-specific role grants or block role access, and open client-specific connection instructions from the Organization Gateway card on the MCP Servers page. The assignments explorer is also available in Roles & Permissions.

  • 7a21235: Opening the dashboard on the legacy host no longer resets the organization you picked on your organization's own host. A move between hosts keeps the session you already have there, unless you just switched organization before the move.

  • 75bb8cd: The MCP Servers page and the command palette now show hosted servers in the same list as remote, tunneled and unproxied servers, with one card and one table row for every kind. A toolset is listed once. An extra server on top of a toolset is listed as its own server only when it has its own endpoint; one without, such as a gateway's member server, shows under that gateway instead.