No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
auth Improve rval for /check endpoint (now uses outgoing.User) Oct 14, 2018
cmd Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
codegen upd(all): disable codegen for crm/types, gofmt Oct 8, 2018
crm Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
internal Improve rval for /check endpoint (now uses outgoing.User) Oct 14, 2018
sam Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
vendor upd(vendor): import dockertest Oct 3, 2018
.dockerignore Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
.editorconfig Add .editorconfig Jul 12, 2018
.env.sample Make CRM configurable through .env and part of realize config Jul 17, 2018
.gitignore Add *.iml to .gitignore Oct 4, 2018
.project add project name, makefile Jul 6, 2018
.realize.yaml More accurate rules for realize Oct 7, 2018
Dockerfile.auth Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
Dockerfile.crm Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
Dockerfile.sam Inject version & build-time info and show it on startup & on /version… Oct 14, 2018
Gopkg.lock Updating deps, add github.com/dgrijalva/jwt-go to .lock Oct 9, 2018
Gopkg.toml Update deps Sep 29, 2018
LICENSE add(all): import Apache-2.0 LICENSE Jul 23, 2018
Makefile Fix statik tooling Oct 9, 2018
README.md update readme Oct 11, 2018
build-proto.sh update package stuff Jun 8, 2018
build.sh upd(build.sh): enable partial build with param Aug 3, 2018
codegen.sh add(all): database migrations prod Oct 8, 2018

README.md

What is CRUST?

CRUST Messaging is a high performance, self-hosted, open source Slack alternative. It has an API centric design and all data exchange is in JSON format. CRUST Messaging is tightly coupled with CRUST IAM.

CRUST CRM is a scalable, self-hosted, open source Salesforce alternative. It provides a suite of tools to build API centric microservice modules. CRUST CRM can be loosely coupled with CRUST Messaging for the purposes of customer engagement and addition of rich external data sources. All data exchange is in JSON format. Business Logic, Workflow, Search and AI (later!) can be applied across both CRM and Messaging stores. CRUST CRM is tightly coupled with CRUST IAM.

CRUST IAM is an advanced Identity and Access Management infrastructure which includes:

  • Social Logins
  • Single Sign On
  • Multi-factor Authentication
  • User Identity Self-Service
  • User and Organisational Privacy Controls
  • Standardised ANSI Role Based Access Control

CRUST Client is a multi-functional client which unifies the user experience of CRUST IAM, Messaging and CRM, allowing organisations to extend access to third party applications internal and external to their firewall (e.g. Video, Docs, Dev Tools) via a common user interface. The design is inspired by popular browser UX, though not identical. CRUST Client will be available on web, desktop and mobile platforms.

Contributing

Setup

Copy .env.example to .env and make proper modifications for your local environment.

An access to a (local) instance of MySQL must be available. Configure access to your database with SAM_DB_DSN and CRM_DB_DSN.

Please check the options available with ./app -h.

The database will be populated with migrations at the start of each service. You don't need to pre-populate the database, just make sure that your permissions include CREATE and ALTER capabilities.

Running in local environment for development

Everything should be set and ready to run with make realize. This utilizes realize tool that monitors codebase for changes and restarts api http server for every file change. It is not 100% so it needs help (manual restart) in certain cases (new files added, changes in non .go files etc..)

Making changes

Please refer to each project's style guidelines and guidelines for submitting patches and additions. In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes

NOTE: Be sure to merge the latest master from "upstream" before making a pull request!