Catalog PyPI
PACKAGE EXPLORERView in registry

agent-nebula-secureagent-examples

PyPI

Installable A2A and A2UI examples for Agent Nebula SecureAgent

Versions collected1
Direct dependencies1From release 5.0.0
Last observed20 Oct, 22:45 UTC

README

Version 5.0.0 documentation

Agent Nebula SecureAgent — Examples and Integration Tests

Build and test standards-based A2A agents locally; then connect them to Agent Nebula for registration, discovery, OAuth-scoped invocation, and policy-controlled access.

This repository is the public, executable starting point for agent-nebula-secureagent. It contains 34 numbered scenarios, grouped by whether they require the hosted Agent Nebula platform. Start with a standalone example; use the platform-integrated examples to exercise the Registry and security services.

What is SecureAgent?

agent-nebula-secureagent is a configuration-driven Python interface for building A2A agents and clients. Application code defines business skills and selects protocols; the underlying Agent Nebula Platform integration uses the official A2A Python SDK for protocol behavior. The security SDK supplies reusable security mechanisms. SecureAgent is not the hosted Registry: local examples do not require an Agent Nebula account.

Application / skills / example clients
                  |
       agent-nebula-secureagent
                  |
        agent-nebula-platform
             /           \
     official A2A SDK   agent-nebula-sdk (security)
                  |
           A2A interfaces
                  |
     optional: Agent Nebula Registry / OAuth / Policy / Explorer

A2A and A2UI

A2A defines Agent Cards, skills, messages, tasks, artifacts, streaming, and interoperable protocol bindings (JSON-RPC, HTTP+JSON, and gRPC where configured). SecureAgent examples use the official A2A SDK instead of implementing a second wire protocol. A2UI v1.0 carries structured, renderer-consumable UI updates over A2A; the A2UI examples cover catalogs, forms, actions, tables, charts, tasks, and streaming. A2UI does not replace A2A transport or authentication.

See configuration, A2UI integration, and the example catalogs.

Configuration-driven development

Each example keeps checked-in templates under config/. make init example-NN resolves templates into an external runtime directory, rather than modifying source configuration or committing secrets.

File / inputResponsibility
config/secureagent.confApplication/runtime identity, logging, and general runtime settings.
config/a2aserver.confA2A listener, TLS settings, Agent Card, supported interfaces, advertised skills, and security schemes.
config/a2aclient.conf (or a2aclient*.conf)A2A client connection and transport/security settings.
config/nebula.conf (when present)Agent Nebula Registry connection, trust, and registration behavior.
config/a2ui.conf (when present)A2UI catalog support and negotiation preferences.
presentation.json (when present)Example-owned A2UI presentation data/catalog references.
.env (from .env.example)Shared runtime root, hostname, and external service URLs; not credentials.
examples.jsonAuthoritative example directory, initialization mode, certificate profile, and runnable processes.

Not every example uses every file. For the exact configuration lifecycle, see configuration and initialization.

A2A authentication and security

The reusable security layer supports the A2A authentication mechanisms demonstrated here: API key, HTTP Bearer, OpenID Connect, mutual TLS, and OAuth 2.0, including combinations of requirements. The examples distinguish advertising a security scheme in an Agent Card from validating credentials at the server. OAuth scopes can restrict individual skills; Agent Nebula integration adds hosted registration and policy-controlled workflows. These are different responsibilities, and neither should be bypassed for a passing test.

Use standalone security examples 10–14 to test local mechanisms, and Agent Nebula OAuth/skill-scope examples 07–08 for platform-integrated flows. Read the security guide for the example coverage and boundaries. The standard ngrok HTTP endpoint is not a replacement for end-to-end client-certificate mTLS; example 13 runs locally.

Install from PyPI

Requires Python 3.12. The package installs SecureAgent, Platform, SDK and their declared Python dependencies. To create an editable workspace containing the examples, configuration templates, scripts and Makefile:

python -m pip install agent-nebula-secureagent-examples
agent-nebula-examples init ./agent-nebula-examples
cd agent-nebula-examples
make install
make env-init
make list

The workspace is copied rather than run inside site-packages, so examples can be edited and their generated runtime files remain outside the installed package. Some examples also require external tools or services (such as uv, make, Node.js, TLS certificates, or an Agent Nebula account). See each scenario's README for prerequisites.

Quick start: no Registry account required

Prerequisites: Python/uv, plus any dependencies called out by the individual example README. From the repository root or installed workspace:

make install
make env-init
make list
make init example-01
make run example-01 server

In a second terminal:

make run example-01 client

To remove the example's disposable runtime snapshot: make clean example-01. Certificates and shared secrets are preserved. The default external runtime root is /opt/agent-nebula/examples; override it with AGENT_NEBULA_EXAMPLES_ROOT as needed. See standalone setup and catalog.

Example catalogs

Standalone — examples/

Run without Agent Nebula Registry registration, Nginx, or ngrok. Local TLS/security prerequisites vary by example.

#ExampleDemonstrates
01A2A HelloMinimal A2A client/server smoke test. Resolves the Agent Card and invokes one hello skill through JSON-RPC over local HTTP.
02A2A Multi-SkillEstablishes multi-skill as the normal SecureAgent model. Advertises three skills and makes the client explicitly select, invoke, and validate every skill.
03A2A Multi-BindingRegisters the same skills once and verifies every skill independently over JSON-RPC, HTTP+JSON, and gRPC using binding-specific client instances.
04A2A HTTPSRetains the multi-skill model and adds certificate-verified HTTPS using a generated local CA and server identity; the client tests every skill without disabling TLS verification.
05A2A Multi-Binding + TLSVerifies every skill over JSON-RPC/HTTPS, HTTP+JSON/HTTPS, and gRPC/TLS.
10API-Key Protected AgentVerifies an A2A APIKeySecurityScheme using an externally configured header credential and native SDK invocation.
11HTTP AuthenticationVerifies HTTPAuthSecurityScheme with an opaque Bearer credential; HTTP Bearer syntax remains distinct from OAuth.
12OpenID ConnectVerifies OpenIdConnectSecurityScheme with a locally provisioned test JWT and issuer/audience/signature validation.
13Mutual TLSVerifies MutualTlsSecurityScheme with mandatory client-certificate authentication at the TLS boundary.
14Multiple Security SchemesVerifies compound A2A security by requiring API key AND HTTP Bearer in one SecurityRequirement.
15Native A2A TasksVerifies native a2a-sdk Message and Task execution, artifacts, get_task(), and list_tasks() with application-owned Task lifecycle.
17Native A2A ArtifactsVerifies native artifact IDs, names, Parts, and TaskStore persistence through get_task().
18Native A2A StreamingVerifies streaming=true with native Task, status, and artifact update events through Client.send_message().
19Native A2A Push NotificationsVerifies native push configuration create/get/list/delete operations and callback delivery.
20Native A2A Extended Agent CardVerifies authenticated native get_extended_agent_card() retrieval of a distinct richer Agent Card.
21Combined Native A2A CapabilitiesCombines native streaming, Task/artifact, push-notification, and Extended Agent Card capabilities in one scenario.
22A2UI BasicVerifies an application-owned A2UI v1.0 Basic Catalog presentation transported through native A2A.
23A2UI RichVerifies an application-owned Agent Nebula Rich Catalog presentation over native A2A.
24A2UI Catalog NegotiationVerifies AgentCard A2UI catalog advertisement and per-turn renderer capability negotiation.
25A2UI Multi-Skill ResultsVerifies multiple native A2A skills independently producing application-owned A2UI results.
26A2UI ActionsVerifies browser A2UI actions and synchronized state through the native A2A execution path.
27A2UI FormsVerifies browser-edited form state and submission through native A2A execution.
28A2UI TablesVerifies a Rich Catalog DataTable driven by application data.
29A2UI ChartsVerifies a Rich Catalog BarChart driven by application data.
30A2UI Multi-SkillVerifies AgentCard-driven skill selection with different A2UI surfaces per skill.
31A2UI + Native TasksVerifies a native A2A Task whose artifact carries an application-owned A2UI presentation.
32A2UI + Native StreamingVerifies native A2A streaming artifact updates producing visible incremental A2UI updates.

Agent Nebula integrated — examples-nebula/

These examples use Agent Nebula registration/discovery and, where applicable, hosted OAuth and skill scopes. For hosted Explorer to reach a developer-run agent, its advertised Agent Card and A2A endpoints must be publicly reachable. Configure the public endpoint using the Nginx + ngrok setup guide.

#ExampleDemonstrates
06Agent Nebula Registration & DiscoveryRegisters the provider with Agent Nebula Registry, discovers it by capability, and invokes every skill through the discovered record.
07Agent Nebula OAuthAdds OAuth-protected A2A invocation after Registry discovery and verifies every skill.
08Skill-Level OAuthVerifies deterministic skill selection and distinct least-privilege OAuth scopes per skill.
09Agent-to-AgentRuns a dual-role SecureAgent that serves A2A while discovering and invoking a downstream Registry provider.
16Native A2A Tasks + HTTPS + OAuthCombines native Message/Task execution with Agent Nebula registration/discovery, HTTPS, and OAuth.
33A2UI + HTTPS + OAuthVerifies existing Agent Nebula HTTPS/OAuth security protecting native A2A carrying A2UI.
34A2UI CombinedCombines HTTPS/OAuth, multi-skill dispatch, native Task/streaming, and A2UI without new protocol abstractions.

Agent Nebula Enterprise Registry Hub

Agent Nebula provides a hosted environment for publishing and discovering A2A agents and testing security-controlled invocation. The platform includes an A2A Registry, Playground, Explorer, OAuth services, policy services, and account management.

The account ownership model is Publisher → Provider → Agents: a publisher account manages providers; a provider publishes and manages agent registrations. An Agent Card describes the agent's capabilities, endpoints, and advertised security requirements. Registry discovery and Explorer invocation require reachability and appropriate authorization; successful registration alone does not prove the agent is reachable.

Start at agentnebula.ai to create an account. Then follow the existing Agent Nebula integration guide and registration/discovery example for provider onboarding, certificate enrollment, onboarding credentials, registration, discovery, and invocation. Platform-integrated examples provide the ordered test path. For hosted onboarding, see the registration guide, OAuth and policy guide, and Nginx + ngrok setup guide.

Developer documentation

Repository conventions

Examples are executable acceptance scenarios, not illustrative snippets: clients must exercise the capabilities advertised by their example and exit nonzero on assertion failure. Preserve numbered example IDs and the shared make init/run/clean example-NN lifecycle. Application code stays at the SecureAgent public boundary; do not reimplement A2A protocol handling, duplicate security enforcement, or commit credentials, certificates, or runtime output.

Agent Nebula hosted onboarding guides

For publicly reachable registered agents, see Nginx + ngrok setup.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
5.0.019 Oct 20261

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:45 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:f814b7d21c44fc26148bd0d954d0d4829f8ee7cb2d94d9250a8a504094e850e2