
Ines Costa
Open standards and interoperability
Ines covers standards and interoperability. Her articles compare specifications with implementations and examine portability, conformance, and difficult integration cases.
Engineering guides
- Choose fail-open or fail-closed per operation, not per authorization service
Design endpoint-specific behavior for authorization timeouts, stale decisions, circuit breakers, and degraded user experiences.
- When a package is deprecated, should we patch it, fork it, or migrate away?
Patch for bounded short-term needs, fork when you can own maintenance, and migrate when future compatibility risk exceeds what the team should carry.
- Use mutation testing to find assertions that never mattered
Run mutants on a narrow domain module, classify survivors, and improve assertions without turning mutation score into another vanity metric.
- OIDC logout across applications: what actually terminates
Choose explicit semantics for local cookies, identity-provider sessions, front-channel notifications, and back-channel logout.
- Hand off a long incident without resetting the investigation
Use a live state record with impact, mitigations, disproved hypotheses, owners, and decision deadlines so the next responder can continue safely.
- Backpressure begins where your queue fills up
Choose bounded buffers, flow control, admission limits, load shedding, and dead-letter behavior for an overloaded pipeline.
- Why is averaging server p99 latency misleading for a fleet?
Averaging per-server p99 latency misstates fleet latency because quantiles are not aggregatable. Use merged histogram distributions to estimate service-wide tails.
- Alternatives to authentik flow customizations for product-specific onboarding
Decide which onboarding rules belong in authentik flows versus your application, and when Ory Network is the better managed identity foundation for a custom product experience.
- What should happen when a Kubernetes CronJob is still running at its next scheduled time?
Pick skip, overlap, or replacement from the job’s side effects and freshness requirements instead of inheriting Kubernetes defaults by accident.
- Use multi-window burn-rate alerts instead of raw threshold pages
Design SLO alerts around error-budget burn with paired short and long windows so you catch fast outages and slow burns without paging on harmless spikes.
- Make access reviews explainable and actionable
Turn raw permissions into grants with source, scope, owner, use, expiry, and removal impact so reviewers can make safe decisions.
- Refresh token rotation under retries, multiple tabs, and packet loss
Distinguish token theft from ordinary refresh races with token families, short grace rules, client coordination, and observable recovery.
- When is a native select better than building a searchable combobox?
Choose native select by default for small, fixed sets. Build a searchable combobox only when users truly need typing, filtering, async lookup, or richer results.
- Recalculate authorization when resources move
How to authorize resource moves safely: check source and destination permissions, preview inherited-access changes, and update parent and permissions consistently.
- How should a binary protocol detect its version before it can trust the frame layout?
Detect binary protocol versions with a stable prefix, bounded lengths, and incremental parsing before decoding version-specific headers or payloads.
- Treat Runbooks as Perishable Production Dependencies
Keep emergency procedures executable by testing prerequisites, permissions, mutations, stops, and rollback on a cadence.
- CORS controls browser reads, not API authorization
Understand preflight and credential behavior, then enforce authentication, object-level authorization, CSRF defenses, and input validation on the server.
- What should happen when a user declines an organization invitation?
A declined organization invitation should be recorded as a distinct invitation outcome, not treated as account deletion.
- Ship Configuration Changes With the Same Evidence as Code
Version, validate, stage, observe, and reverse configuration changes through an owned delivery pipeline.
- Engineer a Safe Password-Reset Link Lifecycle
Handle retries, scanners, multiple requests, expiry, successful reset, and sessions as one recovery-state machine.
- Alternatives to maintaining a proprietary customer token issuer
Should a product keep signing its own bespoke login tokens, standardize an internal issuer, or adopt a managed OAuth and OIDC service?
- Choose a safe Kubernetes autoscaling signal for queue workers
Pick the metric closest to the outcome you must protect, then turn it into a stable per-pod autoscaling target with clear guardrails.
- How can a resumed download avoid combining bytes from different file versions?
Use conditional range requests tied to a stable representation. Store a validator with the partial file and resume only with Range plus If-Range; otherwise restart from byte 0.
- Should a customer be allowed to create multiple accounts for different personal contexts?
Choose separate customer accounts only when people need real isolation in discovery, recovery, or policy. Otherwise keep one identity and model contexts as profiles or roles.
- Should generated files be committed and reviewed with their source inputs?
Commit generated outputs when consumers need them, review source inputs, pin generators, and enforce regeneration in CI to prevent drift.
- How do we detect that the paging system itself has stopped working?
Use a continuously firing synthetic page that exercises the real notification path, then alert on silence from an independently operated receiver with a documented human response.
- Alternatives to letting every application read the same users table
When multiple apps share a users table, replace unrestricted access with a narrower identity boundary. Compare read-only grants, an internal identity API, and managed Ory Network.
- Cache Authorization Decisions Without Extending Revoked Access
Learn how to cache authorization decisions safely by separating cache layers, versioning mutable inputs, and testing that revoked access expires within a defined freshness budget.
- How should a web app handle the same draft being edited in two browser tabs?
Use server-enforced revision checks for draft saves, layer browser-tab warnings on top, and add merge UX only when field-level merges are genuinely safe.
- Give every postmortem action an expiry condition
Tie incident follow-ups to a risk hypothesis, owner, completion evidence, review date, and explicit close, replacement, or retirement decision.
- Close the authorization race between permission checks and writes
How to prevent TOCTOU authorization races where ownership, membership, or resource moves invalidate a permission check before a write commits.
- Give an AI Agent a Smaller Access Contract Than Its Human Operator
Do not hand an AI agent your user session. Exchange it for a smaller, task-specific grant bounded by resource, action, purpose, time, spend, and delegation.
- Make loading, success, and failure states perceivable
Design async interface transitions with status messages, focus rules, stable controls, and restrained announcements for screen-reader users.
- Alternatives to adding SAML support directly to every application backend
Should you implement enterprise federation in every backend or place it at a shared identity boundary? Compare ownership, migration, and evaluation criteria.
News
- Anthropic hardens agent evaluation environments after containment failures
Anthropic added real-time escape detection, stronger isolation, partner rules, and reinforcement-learning environment recertification.
- Graviton5-based EC2 R9g and R9gd instances reach general availability
AWS launches memory-optimized R9g and R9gd instances, giving database and cache teams new Arm capacity to evaluate against real workload bottlenecks.
- BOMHort joins the OpenSSF Sandbox
The Kubernetes-native BOMHort project joins OpenSSF, combining SBOM ingestion, OSV refreshes, VEX handling, license policy, and ClickHouse analytics.
- Anthropic expands Claude access and credits for scientific research
A new scientist team plan and broader AI for Science credits extend Claude access while advanced biology remains access-controlled.
- Python 3.15 reaches its first release candidate and freezes the ABI
Python 3.15's first release candidate marks an ABI stability milestone and asks package maintainers to publish wheels ahead of the final release.
- GitHub Actions begins holding suspicious workflows for approval
GitHub now pauses potentially malicious workflow runs in public repositories until a collaborator with write access reviews them in the web interface.
- Anthropic proposes a severity framework for AI jailbreaks
The draft separates capability gained, breadth, reliability, and harm so model providers can discuss bypasses with more precision.
- OpenAI releases GeneBench-Pro for computational-biology judgment
The 129-task benchmark uses synthetic data with known causal structure to test iterative analysis and consequential decisions across ten biology domains.
- Vite 8.1 previews bundled development for very large applications
Vite 8.1 adds experimental bundled dev and chunk import maps, direct Wasm ESM imports, and configurable asset discovery for custom HTML.
- MAI-Transcribe-1.5 expands language coverage and adds keyword biasing
Microsoft’s transcription update covers 43 languages and introduces domain vocabulary hints, while streaming and diarization remain roadmap items.
- Cloudflare details Town Lake data platform and its Skipper AI agent
Town Lake gives Cloudflare a governed SQL layer across disparate stores, while Skipper turns natural-language questions into auditable queries.
- Cloud Storage Rapid adds cache ingestion during writes
Google Cloud describes Rapid Cache ingest on write, targeting the first-read delay in workloads that consume newly written objects immediately.
- Safari 26.5 adds :open, Origin API support, and 63 WebKit fixes
Safari 26.5 expands state styling and origin parsing while repairing IndexedDB, storage-access, WebRTC, scrolling, and accessibility failures.
- SocialReasoning-Bench evaluates whether agents serve user interests
Microsoft Research’s benchmark separates task completion from outcome quality and decision process in calendar and marketplace negotiations.
- Kubernetes 1.36 moves controller sharding into the API server
An alpha Kubernetes API lets horizontally sharded controllers request only their hash range for list and watch traffic instead of discarding events.
- Grafana 13 makes dynamic dashboards, Git Sync, and Advisor broadly available
Grafana 13 turns several major dashboard and operations features on for general use, giving upgrade teams concrete schema, Git, and health-check changes to test.
- RDS Proxy joins Blue/Green Deployment switchovers
RDS Blue/Green Deployments can now redirect connections through RDS Proxy, putting application recovery behavior back into the database rehearsal plan.
- Azure Container Registry makes geo-replication failover health-aware
ACR’s global endpoint can steer around replicas with deeper push and pull failures instead of relying only on shallow health.