Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ardoq-sdk-js

Package Overview
Dependencies
Maintainers
12
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ardoq-sdk-js

A software development kit for integrating with Ardoq

  • 0.2.2
  • latest
  • npm
  • Socket score

Version published
Maintainers
12
Created
Source

Ardoq SDK JS

This is an, as of yet, small SDK for developing against the Ardoq API. It currently constist of two parts:

  1. The API - A set of functions corresponding to the API endpoints of Ardoq, with correct typings
  2. A graph syncer - A function that allows you to define a simple graph object and update a set of workspaces in Ardoq to match this local graph

Please open an issue if there is any functionality you are missing, or if you find any bugs.

Usage

For complete usage examples, please see our repo with examples.

The API

The following example demonstrates how to create a component with the api.

import { getAggregatedWorkspace, updateComponent } from 'ardoq-sdk-js';

const apiProps = {
  authToken: '<authentication token>',
  org: 'my-org',
  url: 'https://app.ardoq.com/api/',
};

const main = async () => {
  const workspace = await getAggregatedWorkspace(apiProps, '<workspace id>');
  for (const component of workspace.components) {
    await updateComponent(apiProps, {
      ...component,
      description: (component.description || '') + '\nVisisted by script',
    });
  }
};

main();

The Graph Syncer

The following example demonstrates most of the functionality of the graph syncer. Notice that the sync function will take care of creating the used types and fields. Fields can be changed locally, and will lead to the components remotely being updated as long as the customIds stay the same.

import { sync, FieldType } from "ardoq-sdk-js";

const apiProps = {
  authToken: "<authentication token>",
  org: "my-org",
  url: "https://app.ardoq.com/api/"
};

const fields = [
  {
    name: "excerciseValue",
    label: "Excercise value",
    type: FieldType.NUMBER
  }
];
const workspaces = {
  activities: "<workspace id>",
  equipment: "<workspace id>",
};
const graph = {
  components: [
    {
      customId: "walking",
      workspace: "activities",
      name: "Walking",
      type: "Simple Activity",
      fields: {
        excerciseValue: 10
      }
    },
    {
      customId: "running",
      workspace: "activities",
      name: "Running",
      type: "Simple Activity",
      parent: 'walking',
      fields: {
         excerciseValue: 50
      }
    },
    {
      customId: "sailing",
      workspace: "activities",
      name: "Sailing",
      type: "Complex Activity",
      fields: {
         excerciseValue: 15
      }
    },
    {
      customId: "dinghy",
      workspace: "equipment",
      name: "Dinghy",
      type: "Equipment"
    }
  ],
  references: [
    {
      customId: "sailing-uses-dinghy",
      source: "sailing",
      type: "Uses",
      target: "dinghy",
    },
  ]
};

sync(apiProps, workspaces, graph, fields);

Contributing

There are a few things that could use some work:

  • Verify the validity of the graph before attempting sync
  • Add more of the api endpoints
  • Write more tests for sync

Developing and testing

  • yarn start will start continous building (very nice to combine with yarn link for live testing in another repo)
  • yarn test --watch will start continous testing

Cutting a new release

  1. Make sure everything works: yarn test
  2. Publish: yarn publish
    • NB: Make sure to follow schemantic versioning. As long as we are in 0.x.x, make sure to bump the minor version on any change that could break existing code.

Keywords

FAQs

Package last updated on 16 Sep 2020

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc