Skip to main content
Run VisualSign as a standalone gRPC service without AWS Nitro Enclave infrastructure. This provides the same parsing functionality and API without attestation.

When to use the gRPC server

The standalone gRPC server is appropriate for:
  • Development and testing environments
  • Internal services on trusted networks
  • Environments where TEE isn’t available or required
  • Prototyping before moving to TEE

Security considerations

Without TEE, there’s no cryptographic proof of parsing integrity. Only use this deployment model when you trust the network and host.
The standalone server model assumes:
  • The host running the parser is trusted
  • Network communication is secured (TLS, VPC, etc.)
  • You don’t need to prove parsing integrity to external parties

Running locally

The server binary is a single-process gRPC server that calls the parser directly, without the socket-based architecture used in TEE deployments.
The parser will be available at localhost:44020.

Configuration

Set the EPHEMERAL_FILE environment variable to specify a custom signing key:
For development, the binary defaults to integration/fixtures/ephemeral.secret.

Building a Docker image

The server binary can be containerized as a single static binary:
Build and run:
For production, generate your own ephemeral key file rather than using the test fixture.

Kubernetes deployment

Using the gRPC API

The API is identical to TEE deployments, minus attestation:

Alternative: Multi-process mode

For development, you can also run the full multi-process setup that mirrors the TEE architecture:
This starts three processes (parser_host, simulator_enclave, parser_app) communicating over Unix sockets. The single-process server binary is simpler for most use cases.

Migrating to TEE

The gRPC server uses the same API as TEE deployments. To migrate:
  1. Deploy TEE infrastructure (self-hosted or use Turnkey)
  2. Update your client to point to the TEE endpoint
  3. Add attestation verification to your client
No changes to request/response handling are required.

Health checks

The server implements the standard gRPC health checking protocol:
Response:
You can also list all available services:

Next steps