Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@prsm/arc-server

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@prsm/arc-server

[![NPM version](https://img.shields.io/npm/v/@prsm/arc-server?color=a1b858&label=)](https://www.npmjs.com/package/@prsm/arc-server)

latest
npmnpm
Version
1.3.8
Version published
Maintainers
1
Created
Source

arc-server

NPM version

arc-server uses @prsm/duplex to create a server that @prsm/arc-client clients can connect to and communicate with.

Quickstart

import { ArcServer } from "@prsm/arc-server";

ArcServer.init({ host: "0.0.0.0", port: 3351, secure: false });

User Management

Root User Configuration

By default, the server creates a root user with username "root" and password "root". You can customize this:

// Custom root user credentials
ArcServer.init({
  host: "0.0.0.0",
  port: 3351,
  secure: false,
  rootUser: {
    username: "admin",
    password: "secure-password"
  }
});

// Disable root user creation entirely
ArcServer.init({
  host: "0.0.0.0", 
  port: 3351,
  secure: false,
  rootUser: {
    disabled: true
  }
});

Creating Additional Users

You can create additional users programmatically:

// Create a new user
ArcServer.createUser("username", "password");

// Remove a user
ArcServer.removeUser("username");

You can listen to command events.

ArcServer.emitter.on("auth", ({ payload }) => { });
ArcServer.emitter.on("query", ({ payload }) => { });
ArcServer.emitter.on("createUser", ({ payload }) => { });
ArcServer.emitter.on("removeUser", ({ payload }) => { });

You can query directly from the server instance.

ArcServer.query({
  collection: "planets",
  operation: "find",
  data: {
    query: { name: { $includes: "M" } },
  },
});

Sharded collections

Normally, when you query for a collection, the server will create a standard Collection instance for you.

If you want to have a ShardedCollection instance instead, you can define a ShardedCollectionDefinition[] and pass it to the server during init.

const shardedCollections = [
  {
    // Collection name
    name: "planets",
    // The key to shard on
    shardKey: "planet_name",
    // How many shards to create
    shardCount: 3,
    // The adapter to use (not instantiated, just the class)
    adapter: FSAdapter,
    // The options to pass to the adapter when a shard Collection is created
    adapterOptions: {
      storagePath: ".data", // where to store the shards
      name: "planets", // this is the name of the shard files (planets_shard0, etc)
    },
  },
];

ArcServer.init({ ..., shardedCollections });

For an explanation of the above options, see ShardedCollectionDefinition

FAQs

Package last updated on 06 Jun 2025

Did you know?

Socket

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.

Install

Related posts