Skip to content
Report library
Purpose / Other

Gws Events Subscribe Skill Security Audit

What the author says it does (original text)

Google Workspace Events: Subscribe to Workspace events and stream them as NDJSON.

Independent security check

Security risks found

Files checked
1
Risks found
4
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.No risks found
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 1
Medium risk

Workspace event contents may enter terminal records or persist in local JSON files

Source references: 3
What we found

The command streams events as NDJSON and can write every event to a chosen directory; the example subscribes to newly created chat messages. Event payloads may contain message content and user or space identifiers.

Why this matters

Other people may read the event data through shared terminal logs, agent-session records, backups, or an output directory with broad permissions.

The Skill explicitly streams Workspace events as NDJSON and can write every event to a local directory; its example subscribes to chat-message creation events. If the user enables `--output-dir` or terminal output is logged, event payloads may remain in local files or logs. The source does not show the payload schema, so it does not prove message bodies are included. Users can ask for documented fields and retention behavior and restrict output to a protected temporary directory.

SKILL.md:18In the instructionsOpen original file
Subscribe to Workspace events and stream them as NDJSON
Show 2 other places
SKILL.md:39In the instructionsOpen original file
| `--no-ack` | — | — | Don't auto-acknowledge messages || `--output-dir` | — | — | Write each event to a separate JSON file in this directory |
SKILL.md:44In the instructionsOpen original file
```bashgws events +subscribe --target '//chat.googleapis.com/spaces/SPACE' --event-types 'google.workspace.chat.message.v1.created' --project my-projectgws events +subscribe --subscription projects/p/subscriptions/my-sub --once
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.No risks found
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.Risks found: 2
Medium risk

Default message acknowledgement can alter retry and recovery behavior for other consumers

Source references: 3
What we found

`--no-ack` is described as disabling automatic acknowledgement, implying that pulled messages are acknowledged by default; an example also uses an existing subscription. Acknowledgement changes shared Pub/Sub subscription state.

Why this matters

If processing, storage, or a later step fails, acknowledged messages normally will not be redelivered through the same subscription, so another workflow may miss events.

The `--no-ack` description indicates that pulled messages are acknowledged by default, and the command can use an existing subscription. Acknowledgment changes delivery state for that Pub/Sub subscription and may prevent other consumers sharing it from receiving those messages again; this does not establish an effect on separate subscriptions. Users can use a dedicated subscription or `--no-ack` and ask the author to document acknowledgment timing and failure handling.

SKILL.md:33In the instructionsOpen original file
| `--project` | — | — | GCP project ID for Pub/Sub resources || `--subscription` | — | — | Existing Pub/Sub subscription name (skip setup) || `--max-messages` | — | 10 | Max messages per pull batch (default: 10) || `--poll-interval` | — | 5 | Seconds between pulls (default: 5) || `--once` | — | — | Pull once and exit || `--cleanup` | — | — | Delete created Pub/Sub resources on exit || `--no-ack` | — | — | Don't auto-acknowledge messages || `--output-dir` | — | — | Write each event to a separate JSON file in this directory |
Show 2 other places
SKILL.md:45In the instructionsOpen original file
gws events +subscribe --target '//chat.googleapis.com/spaces/SPACE' --event-types 'google.workspace.chat.message.v1.created' --project my-projectgws events +subscribe --subscription projects/p/subscriptions/my-sub --oncegws events +subscribe ... --cleanup --output-dir ./events
SKILL.md:38In the instructionsOpen original file
| `--cleanup` | — | — | Delete created Pub/Sub resources on exit || `--no-ack` | — | — | Don't auto-acknowledge messages || `--output-dir` | — | — | Write each event to a separate JSON file in this directory |
Medium risk

The command can create persistent GCP Pub/Sub resources or delete its created resources on exit

Source references: 5
What we found

Subscription setup in a specified project involves Pub/Sub resources. The documentation says they persist without `--cleanup`, while that flag deletes created resources on exit.

Why this matters

Leftover resources expand the cloud account's managed footprint and may incur charges; an ill-chosen cleanup option may instead remove resources still intended for reconnection.

The documentation says the command can set up Pub/Sub resources in a specified GCP project: by default they persist, while `--cleanup` deletes resources it created on exit. This can create ongoing cost or permission exposure, or cause loss of those created resources during cleanup; the word “created” does not show that pre-existing resources are deleted. Users should confirm the project, resource names, cost, and cleanup scope before execution; the Skill itself requires confirmation.

SKILL.md:32In the instructionsOpen original file
| `--event-types` | — | — | Comma-separated CloudEvents types to subscribe to || `--project` | — | — | GCP project ID for Pub/Sub resources || `--subscription` | — | — | Existing Pub/Sub subscription name (skip setup) || `--max-messages` | — | 10 | Max messages per pull batch (default: 10) || `--poll-interval` | — | 5 | Seconds between pulls (default: 5) || `--once` | — | — | Pull once and exit || `--cleanup` | — | — | Delete created Pub/Sub resources on exit || `--no-ack` | — | — | Don't auto-acknowledge messages |
Show 4 other places
SKILL.md:51In the instructionsOpen original file
- Without --cleanup, Pub/Sub resources persist for reconnection.- Press Ctrl-C to stop gracefully.
SKILL.md:54In the instructionsOpen original file
> [!CAUTION]> This is a **write** command — confirm with the user before executing.
SKILL.md:37In the instructionsOpen original file
| `--once` | — | — | Pull once and exit || `--cleanup` | — | — | Delete created Pub/Sub resources on exit || `--no-ack` | — | — | Don't auto-acknowledge messages |
SKILL.md:55In the instructionsOpen original file
> [!CAUTION]> This is a **write** command — confirm with the user before executing.
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.Risks found: 1
Medium risk

If the shared prerequisite is missing, the Skill requires generating and trusting instructions absent from this audit

Source references: 2
What we found

The prerequisite requires reading a neighboring `gws-shared` Skill and running a generator if it is missing. Neither that file nor generated content is included here, so its authentication, global-flag, and security instructions cannot be reviewed with this Skill.

Why this matters

Before subscribing, the agent may add files and accept unaudited authentication or security instructions that change later commands, credential handling, or authorization scope.

This Skill delegates authentication, global flags, and security rules to an adjacent Skill absent from the supplied source, and instructs running a generator if it is missing. Because neither the shared file nor generated output is included, users cannot verify the instructions, generated files, or credential handling from this evidence. This does not prove malicious behavior, but it is an unverified dependency that should be reviewed before execution; users can request a pinned shared file and the generator’s provenance.

SKILL.md:16In the instructionsOpen original file
> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
Show 1 other places
SKILL.md:59In the instructionsOpen original file
- [gws-shared](../gws-shared/SKILL.md) — Global flags and auth- [gws-events](../gws-events/SKILL.md) — All subscribe to google workspace events commands
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.No risks found

Inside this skill

5 instruction sections

The Skill directs the agent to run `gws events +subscribe`, which subscribes to Google Workspace events and streams them as NDJSON.

View source
SKILL.md:18In the instructionsOpen original file
Subscribe to Workspace events and stream them as NDJSON## Usage```bashgws events +subscribe```

It can use an existing Pub/Sub subscription or a specified GCP project, and supports automatic acknowledgement, resource cleanup, and writing events to separate JSON files.

View source
SKILL.md:32In the instructionsOpen original file
| `--event-types` | — | — | Comma-separated CloudEvents types to subscribe to || `--project` | — | — | GCP project ID for Pub/Sub resources || `--subscription` | — | — | Existing Pub/Sub subscription name (skip setup) || `--max-messages` | — | 10 | Max messages per pull batch (default: 10) || `--poll-interval` | — | 5 | Seconds between pulls (default: 5) || `--once` | — | — | Pull once and exit || `--cleanup` | — | — | Delete created Pub/Sub resources on exit || `--no-ack` | — | — | Don't auto-acknowledge messages || `--output-dir` | — | — | Write each event to a separate JSON file in this directory |

The documentation explicitly labels this as a write operation and requires user confirmation before execution.

View source
SKILL.md:54In the instructionsOpen original file
> [!CAUTION]> This is a **write** command — confirm with the user before executing.
Start here · InstructionsSKILL.md
gws-events-subscribe
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source.
Files and check records1 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions

Operations mentioned in code and instructions

Run commands
SKILL.md:22In the instructionsOpen original file
```bashgws events +subscribe
SKILL.md:43In the instructionsOpen original file
```bashgws events +subscribe --target '//chat.googleapis.com/spaces/SPACE' --event-types 'google.workspace.chat.message.v1.created' --project my-project
Lines read
61
File checksum (to compare versions)
d3d94d708432d5ecee55a9167aa49263f513df3fe780c70f77545d7978d2f6b5