stacklok / stacklok/mecatl

Scheduled tasks — per-fire egress allowlist

Open
#260 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement research
Dominant language
Go
Stars
152
Forks
16
Avg merge
14h 48m
Merged PRs (30d)
536

Description

Summary

Add scoped network egress per schedule (the Cursor pattern) so a scheduled fire's outbound network calls (WebSearch, WebFetch, mcp__* tools) are restricted to an allowlist.

Part of #189 (scheduled tasks). Split out of #236 (deferred/v2) — needs network policy infrastructure, too large for the v2 finish PR (#256).

Scope

  • A per-schedule EgressAllowlist []string field (domains/IP ranges).
  • Enforcement at the tool execution layer (a wrapper around WebSearch/WebFetch/mcp__* that checks the destination against the allowlist before the call).
  • Default: empty = no restriction (current behavior); non-empty = deny-by-default with the allowlist.
  • This is the network-level analogue of the existing secret-scrubbed env + headless ask model: another unattended-safety gate.

References

  • Design: #189 (Prior art: Cursor egress allowlist, Claude Routines network allowlist).
  • The v2 finish: #256.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the design and prior art in #189, then trace the scheduled-task model and the tool execution layer referenced in the scope. Done means each schedule supports an EgressAllowlist, outbound WebSearch, WebFetch, and mcp__* calls enforce it, and empty versus non-empty lists preserve the stated default behaviors.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, networking, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.