
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
@toolsplus/forge-trpc-adapter
Advanced tools
Custom tRCP adapter to enable tRPC for Atlassian Forge apps
Custom tRCP adapter to enable tRPC for Atlassian Forge apps.
npm install @toolsplus/forge-trpc-adapter
Note that this package has a peer dependency on @forge/resolver. If you have not installed @forge/resolver you may install before installing this package.
The following code illustrates how to create a Forge function that handles tRPC requests.
// src/index.ts
import Resolver from '@forge/resolver';
import {
initTRPC,
inferAsyncReturnType
} from '@trpc/server';
import {
forgeRequestHandler,
ResolverFunction,
CreateForgeContextOptions
} from '@toolsplus/forge-trcp-adapter';
import { z } from 'zod';
import superjson from 'superjson';
// Initialize a context for the server
const createContext = ({ request }: CreateForgeContextOptions) => {
// For production applications you may want to validate
// that `request.context` is in the expected format. This
// should also help with better Typescript type inference.
return request.context;
}
// Get the context type
type Context = Awaited<ReturnType<typeof createContext>>;
const tRPC = initTRPC.context<Context>().create({
transformer: superjson
});
// Create hello router
const helloRouter = tRPC.router({
// Hello procedure
greeting: tRPC.procedure
.input(
z.object({
name: z.string(),
}),
)
.query(({ input }) => `Hello, ${input.name}!`),
});
// Export the hello router type to be imported on the client side
export type HelloRouter = typeof helloRouter;
// Create a Forge function request handler that resolves
// tRPC requests
const helloResolver: ResolverFunction = forgeRequestHandler({
router: helloRouter,
createContext,
});
// Register the tRPC request resolver with the 'rpc' Forge
// function key
export const tRPCResolver = new Resolver()
.define('rpc', helloResolver)
.getDefinitions();
Register the tRPCResolver function in the Forge app manifest, just as you would any other Forge resolver function.
# manifest.yml
modules:
jira:projectSettingsPage:
- key: project-settings-page
title: Hello tRPC
layout: blank
resource: hello-trpc
resolver:
function: trpc-resolver
function:
- key: trpc-resolver
handler: index.tRPCResolver
resources:
- key: hello-trpc
path: hello-trpc
tunnel:
port: 4200
app:
id: ari:cloud:ecosystem::app/...
FAQs
Custom tRCP adapter to enable tRPC for Atlassian Forge apps
We found that @toolsplus/forge-trpc-adapter demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.