Rename edit REST handlers/requests to update
Denis Arh authored
3dcf10e3
Name Last commit Last update
api Rename edit REST handlers/requests to update
cmd Improve SMTP
codegen upd(codegen): special handling of *Set types
crm Rename edit REST handlers/requests to update
docs Rename edit REST handlers/requests to update
internal Credentials & social-sign-on, fixed mocks
sam Improve SMTP
system Cleanup, preloading improved
vendor all(vendor): update vendor
.dockerignore Inject version & build-time info and show it on startup & on /version endpoint
.editorconfig Add .editorconfig
.env.sample Improve SMTP
.gitignore Add *.iml to .gitignore
.project add project name, makefile
.realize.yaml Reconfigure realize to monitor per-app locations only
Dockerfile.crm Inject version & build-time info and show it on startup & on /version endpoint
Dockerfile.sam Inject version & build-time info and show it on startup & on /version endpoint
Dockerfile.system Fix makefile, dockerfile auth=>system
Gopkg.lock all(vendor): update vendor
Gopkg.toml Add all sso releated deps
LICENSE add(all): import Apache-2.0 LICENSE
Makefile Credentials & social-sign-on, fixed mocks
README.md update readme
build-proto.sh update package stuff
build.sh upd(build.sh): enable partial build with param
codegen.sh Improve record value handling, more strict type on API endpoints

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!