Giter Site home page Giter Site logo

sdudley / ace-gdpr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mtmendonca/ace-gdpr

0.0 0.0 0.0 33 KB

:sparkles: Get GDPR updates for your Atlas-Connect-Express application

Home Page: https://www.jexo.io/boilerplate

License: MIT License

Dockerfile 0.18% JavaScript 99.82%

ace-gdpr's Introduction

ace-gdpr

License: MIT Build Status

Get GDPR updates for your Atlas-Connect-Express application

This package will assist you in complying with Atlassian's GDPR requirements described here.

Installation

Using npm:

$ npm install --save ace-gdpr

Pre-requisites

  • A postgres database.
  • atlas-connect-express' AddonSettings table
  • This package assumes you're following jira's recommendation for user data storage and persisting it in a single table.
  • The table must have a string column that stores the user account id, a string column that stores the client key for that user, and a date column with when that user's data was last updated.

Usage

ace-gdpr uses node-postgres to read user data from your database, and to create/update an internal table named ace_gdpr_settings. It assumes the following environment variables to be available with the database connection information:

PGUSER='database username'
PGPASSWORD='database user password'
PGHOST='database host'
PGPORT='databse port'
PGDATABASE='database name'

In your atlas-connect-express application

const getUpdates = require('ace-gdpr').default;

// map your users table name and column names to the config object
const config = {
  databaseConfig: {
    users: {
      tableName: 'users',
      columns: {
        updatedAt: 'updated_at',
        userAccountId: 'user_account_id',
        clientKey: 'client_key'
      }
    }
  },
  forceExecution: false // * see note below
};

getUpdates(config)
  .then(({ updated, closed }) => {
    // use jira api to fetch fresh user data and update the user record. Remember to update the `updatedAt` column for every record
    updated.forEach(accountId => updateUserData(accountId));
    // get rid of this user's personal data wherever you're storing it
    closed.forEach(accountId => removePersistedUserData(accountId));
  })
  .catch((error) => {
    // handle error
  });

We recommended running getUpdates once a day under a scheduler. The plugin keeps track of when you last executed successfully in ace_gdpr_settings and will only run again one day before the next update cycle recommended by Jira. Set forceExecution to true if you want the plugin to ignore the last update and cycle settings in ace_gdpr_settings and run the whole thing when called.

To do

  • Create contributing documentation
  • Create examples using Kue and node-schedule

License

MIT

ace-gdpr's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.