1.3.8 • Published 10 months ago

@prsm/arc-server v1.3.8

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

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

1.3.7

10 months ago

1.3.6

10 months ago

1.3.5

10 months ago

1.3.4

10 months ago

1.3.3

10 months ago

1.3.2

10 months ago

1.3.8

10 months ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.8

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.2.5

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago