Delivered (Currently Alpha Release)
26Under consideration
[NEW] Added registration / login based on Auth0
Automated resolution of Hypertube Dependency from Graftcode Registry for other than Nuget technologies
With this improvement whenever you pull Grafts with any Package Manager other than Nuget you will not need to explicitly pull the Hypertube dependency (currently you need to manually make i.e. npm install javonet-nodejs-sdk prior to any graft resolution)
Release of the Authorization header support
With this release we are planning to provide support for HTTP headers for edge client connections based on HTTP/2 or Websocket channels allowing for passing any header related information as well as Authorization header with either JWT, Basic, API Key etc.. and full support of injecting this state into standard HTTP context on called side allowing for Authorization headers functionality
Support for TCP/IP Protocol
In addition to Websocket Secure presented in PMF demo, November release introduces full support for direct TCP/IP TLS channel.
Removed all dependencies required to install Graftcode Gateway
With this release Graftcode Gateway on all platforms will be installable without the need to install any prerequisite dependencies.
Add cors parameter to Graftcode gateway
Allow configuring cors for graftcode gateway so it’s sent for http/2 preflight options or validated for websocket
MCP Config in Vision Portal
Adding MCP config in vision portal installation command widget we will make it super easy copy-paste only step to get ready config to paste in your chatgpt, postman or Claude to connect with MCP server exposing your public methods from modules hosted in Graftcode Gateway.
Support for HTTP/2 as communication protocol
With this feature you will be able to use not only websocket and TCP/IP but also HTTP/2 multiplexed streams as communication channel for edge clients using Grafts.
Settings section for Account, Workspace and Project
Surprising its still not there but we are in alpha so everything can happen! With this feature you will be able to manage your account details and same for workspace and project.
Filter types support in Gateway
If you don’t want to publish all your public methods you will be able to use filter to select one or multiple types that should be exposed as grafts. Library with applied filter will have special suffix with short hash of filter and ensure same filter for same lib will always produce same module name.
Coming Next (Upcoming Beta Release)
11Committed and queued
Enhanced logging - Full support for OpenTelemetry Monitoring and Observability with TraceID and SpanID
Now you will be able to pass custom logger to imported Graft and it will be used to report all operation on Graft, logs from sending request and retrieving results. Graftcode Gateway will support custom loggers too allowing you to continue logging on server side up to your business logic preserving Span and Trace so all logs will be fully correlated.
Support for using calling technology classes wrapping value types (i.e. Date)
Now calling technology will be able to use local classes that wrap value types like Date, Color, Point and passing them to target service or runtime will automatically convert them to target technology wrappers by passing value of ticks, Hex, X,Y etc…
Starting Graftcode Gateway from currently running process
With this feature graftcode will allow to expose graftcode endpoints without launching server on GG but instead adding graftcode as project dependency and starting it from the runtime of process launched on another middleware or app server.
Grafting async methods to async grafts
With this capability method with async will graft as async and will allow for invocation over sync or async channel correctly translating code to real transport
Support for Grafting stream and multi-out result
With this capability Graftcode will support grafting and keeping connected streams returned between runtimes and allow for multi out writes to client.
Grafting Methods Comments
Method comments will be passed to grafts and MCP tool definitions.
More frontend frameworks in academy
Academy will soon show samples on vue, angular, nextjs, vanillajs and webassembly, svelte, solidjs, Astro, qwik, preact
Modules and Runtimes list for Gateways
With this feature your gateways details panel in servicemap and gateways section will start presenting which runtimes are running on specific gateways and what modules are hosted there and in which version.
Activity Feed - Stay Informed
With Activity feed in portal you will be notified about each event across your projects, when new gateways are started, once new modules are hosted, new versions released or grafts pulled. Everything will get highlighted right on your dashboard.
ServiceMap in Portal - See Gateways you started and details of communication
With this feature you will be able to see every Graftcode Gateway you have started on single map visualization in portal. You will find there runtimes launched, modules hosted and details of communication between clients and this node. If you want to bypass Graftcode you can always set only your own monitoring and observability tools and stop sending data to our endpoints.
Mid-Term
20Actively being built
Support for mTLS
With this feature Graftcode will allow you to use mutual TLS authorization.
Greedy Filter and Missing type message
With this feature Graftcode Gateway will notify on console if your filter exposes class that references other types which are not exposed yet in filter. You will have option either to add them as error will explain OR use greedy filter which pulls all references automatically.
Grafted Service Discovery Endpoint
With this feature Graftcode vision will start exposing standardized path where AI Agents and developers will be able to technically test if service is grafted and will learn structure of methods exposed and install commands for grafts per each tech.
Code Signing for Graftcode Gateway
To ensure smoother download and pass through OS gatekeepers for our Graftcode Gateway we are planning to start signing the binaries to increase filter trust.
Use Cases Dedicated Landing Pages in HomePage
With this feature Graftcode.com will show you all the details per each critical use case where you can apply graftcode.
Sample Real Production Project in Each tech pair
Our Academy will start presenting sample projects with frontend, jwt authentication, stateless backend, and queue between microservices, exposed public api and dependency injection and mixed modules in specific services so you can easily apply graftcode into your project. All of that with great OpenTelemetry support. Sample will show also signalR like bi directional connection and streaming sample.
Examples with complex objects in stateless in arguments and results as part of quick start guide
With this quick start guide will show you how to work in stateless with complex objects. It works now but good sample is worth more than promise ;)
CLI for generating grafts
tool for generating graft for local library without hosting it on graftcode gateway it will support polyglot monolith workflows to get locally command to install package via graft to allows future decomposition or to host multi tech in one process
Official docker images with Graftcode Gateway
We are planning to start publishing official forks of know containers for python, ruby, php, node, netcore, jvm with predownloaded Graftcode gateway to simplify your dockerfiles even further.
Centralized and standardized exceptions for network related events
We are planning to work on standardizing and providing centralized interception/middleware of network related events like: connection lost, timeout, target memory recycled, host not available Graftcode Network Exceptions Client-side Exceptions (thrown in the generated Graft client): GraftConnectionRefusedException – Thrown when the remote Graftcode Gateway cannot be reached or is not listening on the configured endpoint (service down, incorrect host/port, or firewall blocking). GraftConnectionTimeoutException – Connection attempt to the remote Graftcode Gateway timed out. GraftUnknownHostException – DNS resolution failed for the target hostname. GraftConnectionResetException – Connection was forcibly reset by the remote peer (common after service restart, crash, or load balancer drop). GraftReadTimeoutException – Timeout occurred while waiting for a response from the remote method. GraftWriteTimeoutException – Timeout occurred while sending the invocation request. GraftTlsHandshakeException – TLS/SSL handshake failed (applies to wss:// endpoints). GraftCertificateValidationException – Server certificate validation failed (expired, self-signed, hostname mismatch, or untrusted CA). GraftWebSocketUpgradeFailedException – Failed to upgrade the HTTP connection to WebSocket. GraftProtocolViolationException – Received malformed or invalid binary data according to the IIP/Hypertube protocol. GraftInvocationTimeoutException – Remote method execution exceeded the configured timeout on the server side. GraftDeserializationException – Failed to deserialize the response received from the remote service. Gateway-side Exceptions (thrown by Graftcode Gateway gg): GraftPortBindingException – Failed to bind to the configured port (port already in use). GraftPermissionDeniedException – Insufficient permissions to bind to a privileged port (< 1024). Base Class Recommendation All network exceptions inherit from GraftNetworkException for unified handling and easy distinction between transient and permanent errors.
Long-Term
13Recently shipped
Support for grafting events and allowing to subscribe them remotely
With this feature graftcode will start grafting events and delegates allowing client in statefull mode to subscribe to server side and keep getting notified whenever event or delegate is triggered achieving full bi-directional SignalR like real-time communication.
REST pass-through
With this feature you will be able to add graftcode.gateway as dependency to your existing REST enabled project (ASP.NET MVC, Spring, Flask) and route selected path like POST /graft payload directly to graftcode interpreter for Graftcode related processing. In this way you can co-host stateless graftcode functionality within your existing REST interfaces endpoint.
Add support for exposing directly Databases with RLS instead of modules via GG
With this feature GG will allow you to point database connection string instead of modules and Graftcode will automatically expose CRUD operations protected with RLS to specified target database.
Adding Graftcode Gateway as project dependency
With this feature, you will be able to add graftcode gateway as project reference (in .NET, Java, node, ruby, php etc..) and initialize it from your starting class in your project similar to regular REST framework like spring, flask, asp.net mvc. GG will automatically extract and load into memory required native components preserving your launch command the same as before using graftcode.
Provide GG as managed code dependency
With this enhancement for single runtime use case you will be able to add and use Graftcode Gateway as your project dependency and keep your root process untouched. There will be possibility to set it up at startup of your app in code.
Provide global in-code point to set Grafts connection strings
Support React Native as calling technology
Support for Swift as calling technology
Support for Flutter/Dart as calling technology
Min or Must Have Min Graft Version on Gateway
With this feature Graftcode Gateway will allow you to indicate the minimal or mandatory minimal version of the grafts to interact with the service and will cause the exception in case user tries to connect using older version of graft.