Openline customerOS is an open source development platform that enables the flexible and rapid development of customer-centric applications.

  • By Openline
  • Last update: Dec 27, 2022
  • Comments: 13
Openline Logo

Openline customerOS

Openline customerOS is the easiest way to consolidate, warehouse, and build applications with your customer data.

contributions welcome license stars twitter slack

Built with ❤︎ by the Openline community!

👋 Overview

Openline customerOS is an open source development platform that enables the flexible and rapid development of customer-centric applications.

  • Openline Auth - End-to-end identity solution for easy user authentication, sign-in, and permissions using OAuth.
  • customerDB - Backend server that host your customer data in a secure, compliant, and standards based way.
  • customerOS API - GraphQL and gRPC API for reading, writing, and manipulating data.
  • customerOS SDK - Client libraries that simplify the process of interacting with the customerOS API [coming soon].
  • Event trackers - First party event trackers fully integrated with customerDB, allowing you full visibility into how your customers are engaging with your apps and content
  • Web components - A library of web components that make it easy to interact with customer data in your front end applications [coming soon].
  • App launcher - Web application with built in SSO to launch into any app built into customerOS
  • Explorer app - Web application where you can view your data and perform basic editing tasks [coming soon].
  • Admin app - Web application where you configure and administer all Openline services [coming soon]
  • UI components - A library of React components designed to help you quickly develop custom applications on customerOS [coming soon].

🚀 Installation

Download and install customerOS using the following command

[coming soon]

This command will walk you through the installation and setup of the five docker images that comprise customerOS:

  • customer-os-api
  • analytics-api
  • message-store
  • neo4j
  • postgreSQL

For local deployments we use minikube to orchestrate and run the customerOS docker images.

🤝 Resources

  • Our docs site has numerous guides and reference material for to make building on customerOS easy.
  • For help, feature requests, or chat with fellow Openline enthusiasts, check out our slack community!

👩‍💻 Codebase

Technologies

Here's a list of the big technologies that we use:

  • PostgreSQL & Neo4j - Data storage
  • Go - Back end & API
  • TypeScript - Web components
  • React - Front end apps and UI components

Folder structure

openline-customer-os/
├── architecture            # Architectural documentation
├── deployment              
│   ├── infra               # Infrastructure-as-code
│   └── scripts             # Deployment scripts
└── packages
    ├── apps                # Front end web applications
    │   ├── explorer        # customerOS data explorer
    │   ├── launcher        # customerOS app launcher & home screen
    │   └── settings        # customerOS system settings & app configuration
    ├── auth                # Authentication
    ├── components
    │   ├── react           # React component library
    │   └── web             # Web & UI component library
    ├── core                # Shared core libraries
    └── server              # Back end database & API server

💪 Contributions

Contributors

A massive thank you goes out to all these wonderful people (emoji key):

Matt Brown
Matt Brown

📖
Vasi Coscotin
Vasi Coscotin

📖
alexopenline
alexopenline

💻
edifirut
edifirut

🚇 👀
Jonty Knox
Jonty Knox

👀
tsearle
tsearle

💻 📖

🪪 License

  • This repo is licensed under Apache 2.0, with the exception of the ee directory (if applicable).
  • Premium features (contained in the ee directory) require an Openline Enterprise license. See our pricing page for more details.
  • Copyright © Openline Technologies Inc. 2022

Download

openline-customer-os.zip

Comments(13)

  • 1

    [EPIC] - Launch customerOS

    • https://github.com/openline-ai/openline-customer-os/issues/29

    • https://github.com/openline-ai/openline-customer-os/issues/38

    • https://github.com/openline-ai/openline-customer-os/issues/30

    • https://github.com/openline-ai/openline-customer-os/issues/31

    • https://github.com/openline-ai/openline-customer-os/issues/32

    • https://github.com/openline-ai/openline-customer-os/issues/33

    • https://github.com/openline-ai/openline-customer-os/issues/34

    • https://github.com/openline-ai/openline-customer-os/issues/35

    • https://github.com/openline-ai/openline-customer-os/issues/36

    • https://github.com/openline-ai/openline-customer-os/issues/37

    • https://github.com/openline-ai/openline-customer-os/issues/39

    • https://github.com/openline-ai/openline-customer-os/issues/40

    • https://github.com/openline-ai/openline-customer-os/issues/41

    • https://github.com/openline-ai/openline-customer-os/issues/51

    • https://github.com/openline-ai/openline-customer-os/issues/27

    • https://github.com/openline-ai/openline-customer-os/issues/43

    • https://github.com/openline-ai/openline-customer-os/issues/44

    • https://github.com/openline-ai/openline-customer-os/issues/45

    • https://github.com/openline-ai/openline-customer-os/issues/46

    • https://github.com/openline-ai/openline-customer-os/issues/47

    • https://github.com/openline-ai/openline-customer-os/issues/48

    • https://github.com/openline-ai/openline-customer-os/issues/50

    • https://github.com/openline-ai/openline-customer-os/issues/49

    • https://github.com/openline-ai/openline-customer-os/issues/137

    • https://github.com/openline-ai/openline-customer-os/issues/140

    • https://github.com/openline-ai/openline-customer-os/issues/141

    • https://github.com/openline-ai/openline-customer-os/issues/143

    • https://github.com/openline-ai/openline-customer-os/issues/144

    • bugs :

    • https://github.com/openline-ai/openline-customer-os/issues/99

  • 2

    Bump gorm.io/gorm from 1.24.2 to 1.24.3 in /packages/server/customer-os-api

    Bumps gorm.io/gorm from 1.24.2 to 1.24.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 3

    Bump gorm.io/gorm from 1.24.2 to 1.24.3 in /packages/server/customer-os-analytics-api

    Bumps gorm.io/gorm from 1.24.2 to 1.24.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 4

    Bump gorm.io/driver/postgres from 1.4.5 to 1.4.6 in /packages/server/customer-os-analytics-api

    Bumps gorm.io/driver/postgres from 1.4.5 to 1.4.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 5

    Bump gorm.io/gorm from 1.24.2 to 1.24.3 in /packages/server/customer-os-common-module

    Bumps gorm.io/gorm from 1.24.2 to 1.24.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 6

    Bump gorm.io/driver/postgres from 1.4.5 to 1.4.6 in /packages/runner/sync-customer-os-data

    Bumps gorm.io/driver/postgres from 1.4.5 to 1.4.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 7

    Bump gorm.io/gorm from 1.24.2 to 1.24.3 in /packages/runner/sync-tracked-data

    Bumps gorm.io/gorm from 1.24.2 to 1.24.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 8

    Bump gorm.io/gorm from 1.24.2 to 1.24.3 in /packages/runner/sync-customer-os-data

    Bumps gorm.io/gorm from 1.24.2 to 1.24.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 9

    Bump gorm.io/driver/postgres from 1.4.5 to 1.4.6 in /packages/runner/sync-tracked-data

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps gorm.io/driver/postgres from 1.4.5 to 1.4.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 10

    Bump gorm.io/driver/postgres from 1.4.5 to 1.4.6 in /packages/server/customer-os-api

    Bumps gorm.io/driver/postgres from 1.4.5 to 1.4.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 11

    Bump github.com/gin-gonic/gin from 1.8.1 to 1.8.2 in /packages/server/customer-os-common-module

    Bumps github.com/gin-gonic/gin from 1.8.1 to 1.8.2.

    Release notes

    Sourced from github.com/gin-gonic/gin's releases.

    v1.8.2

    Changelog

    Bug fixes

    • 0c2a691 fix(engine): missing route params for CreateTestContext (#2778) (#2803)
    • e305e21 fix(route): redirectSlash bug (#3227)

    Others

    • 6a2a260 Fix the GO-2022-1144 vulnerability (#3432)
    Changelog

    Sourced from github.com/gin-gonic/gin's changelog.

    Gin v1.8.2

    Bugs

    • fix(route): redirectSlash bug (#3227)
    • fix(engine): missing route params for CreateTestContext (#2778) (#2803)

    Security

    • Fix the GO-2022-1144 vulnerability (#3432)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 12

    Add plain text to note

    In order to enable full text search note should also have property with plain text without any html decoration.

    TBD. create task to sync text preview from hubspot if approved.

  • 13

    [FS] - Column to mark the file as temporary

    We need a column that will specify the state of the file. We need 2 states:

    • temporary: false -> file will be kept by the clean-up job
    • temporary: true -> file will be deleted by the clean-up job after some time

    We need to add a flag to the upload endpoint to have the flag: temporary = false. We need an endpoint to mark the file as temporary = false. This will work only if the file is temporary: true