Giter Site home page Giter Site logo

totaljs / openplatform Goto Github PK

View Code? Open in Web Editor NEW
95.0 12.0 43.0 41.26 MB

OpenPlatform v5 is a beautiful and simple portal for running, integrating and managing multiple 3rd party web applications.

Home Page: https://www.totaljs.com/openplatform/

License: MIT License

JavaScript 36.63% CSS 6.01% HTML 56.85% Dockerfile 0.33% Shell 0.18%
nodejs totaljs openplatform webplatform application

openplatform's Introduction

OpenPlatform v5

OpenPlatform is a simple enterprise-ready platform for running, integrating and managing multiple web applications.

OpenPlatform

Installation

WARNING: Please do not execute database.sql, this script will use OpenPlatform internally.

Manual installation:

  • Install latest version of Node.js platform
  • Install PostgreSQL
  • Download Source-Code
  • Create a database for the OpenPlatform
  • Install NPM dependencies via terminal $ npm install in the root of application
  • Update connection strings in /config file
  • Run it $ node index.js
  • Open http://127.0.0.1:8000 in your web browser
  • IMPORTANT: Then open settings and configure the platform

Docker Hub:

docker pull totalplatform/openplatform
docker run --env DATABASE='postgresql://user:pass@hostname/database' -p 8000:8000 totalplatform/openplatform

Docker Compose:

git clone https://github.com/totaljs/openplatform.git
cd openplatform
docker compose up

Default credentials

login : [email protected]
password : admin

Good to know

Don't forget: every added third-party app must be assigned to a group.

openplatform's People

Contributors

gera-g-guiles avatar helferino avatar mhazak avatar molda avatar patchwerkqwer avatar petersirka avatar pom4h avatar tomee03 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openplatform's Issues

Starter tutorial for custom application

Hi,
could you please provide more precise informations about how to start building custom applications?
E.g. where shall they live etc.; the configuration is quite clear.
That would be great!
Kind regards


Arne

Cannot login with default credentials

at ccdb22f

test at clean dockerized environment

openplatform | --------> DEBUG PID: 1 (v3.0.0)
openplatform | ====================================================
openplatform | PID : 13
openplatform | Node.js : v10.10.0
openplatform | Total.js : v3.0.0
openplatform | OS : linux 4.4.0-96-generic
openplatform | Memory : 12.51 MB / 20.35 MB
openplatform | ====================================================
openplatform | Name : OpenPlatform v3
openplatform | Version : 3.0.0
openplatform | Author : undefined
openplatform | Date : 2018-09-10 15:07:26
openplatform | Mode : debug
openplatform | ====================================================
openplatform | Directory : /usr/src/app
openplatform | node_modules : /usr/src/app/node_modules/total.js/
openplatform | ====================================================
openplatform |
openplatform | http://0.0.0.0:80/
openplatform |
openplatform | ======= 2018-09-10 15:10:41: api ---> TypeError: Cannot read property 'decrypt' of undefined (http://ip172-18-0-93-beb8e3bt07tg009dvgi0-80.direct.labs.play-with-docker.com/api/users/) TypeError: Cannot read property 'decrypt' of undefined
openplatform | at Object.OP.decodeAuthToken (/usr/src/app/definitions/openplatform.js:179:14)
openplatform | at SchemaBuilderEntity.onQuery (/usr/src/app/schemas/users.js:42:16)
openplatform | at SchemaBuilderEntity.query (/usr/src/app/node_modules/total.js/builders.js:1390:9)
openplatform | at Controller.$query (/usr/src/app/node_modules/total.js/index.js:9927:19)
openplatform | at Controller.controller_json_workflow (/usr/src/app/node_modules/total.js/index.js:16576:17)
openplatform | at IncomingMessage.PROTO.$total_execute2 (/usr/src/app/node_modules/total.js/index.js:14505:32)
openplatform | at IncomingMessage.PROTO.$total_execute (/usr/src/app/node_modules/total.js/index.js:14473:9)
openplatform | at IncomingMessage.PROTO.$total_authorize (/usr/src/app/node_modules/total.js/index.js:14592:10)
openplatform | at /usr/src/app/node_modules/total.js/index.js:14760:9
openplatform | at Framework.onAuthorize (/usr/src/app/definitions/auth.js:27:10)
openplatform | ======= 2018-09-10 15:15:50: api ---> TypeError: Cannot read property 'decrypt' of undefined (http://ip172-18-0-93-beb8e3bt07tg009dvgi0-80.direct.labs.play-with-docker.com/api/users/) TypeError: Cannot read property 'decrypt' of undefined
openplatform | at Object.OP.decodeAuthToken (/usr/src/app/definitions/openplatform.js:179:14)
openplatform | at SchemaBuilderEntity.onQuery (/usr/src/app/schemas/users.js:42:16)
openplatform | at SchemaBuilderEntity.query (/usr/src/app/node_modules/total.js/builders.js:1390:9)
openplatform | at Controller.$query (/usr/src/app/node_modules/total.js/index.js:9927:19)
openplatform | at Controller.controller_json_workflow (/usr/src/app/node_modules/total.js/index.js:16576:17)
openplatform | at IncomingMessage.PROTO.$total_execute2 (/usr/src/app/node_modules/total.js/index.js:14505:32)
openplatform | at IncomingMessage.PROTO.$total_execute (/usr/src/app/node_modules/total.js/index.js:14473:9)
openplatform | at IncomingMessage.PROTO.$total_authorize (/usr/src/app/node_modules/total.js/index.js:14592:10)
openplatform | at /usr/src/app/node_modules/total.js/index.js:14760:9
openplatform | at Framework.onAuthorize (/usr/src/app/definitions/auth.js:27:10)

How to make another view like Applications

I am trying to build a platform maintenance console using Open Platform but I am not able to add another view to top level view along with Applications & Users.
Can I get a short explanation of how to do that??

Thanks

[Security] Stored XSS in account name

Tested version: b80b09d (latest)

Steps to reproduce the vulnerability:

  • Login in the application.
  • Click on user profile picture in the right corner below.
  • Click My Account
  • Set "><img src=x onerror=alert(document.domain)> as account name and save.
  • XSS fires.
  • Each time a target will visit the dashboard the payload will fire, even if the target is not logged in! In order to test this, just click logout and reload the page.

poc1

poc2

openplatform docker compose

Hi, so I got done with the openplatform set up as it is in readme.

Then I added this to the docker compose file:

version: '3.1'

services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - 5432:5432
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=total
      - POSTGRES_PASSWORD=platform
      - POSTGRES_DB=openplatform
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "total", "-d", "openplatform"]
      interval: 3s
      timeout: 3s
      retries: 5

  openplatform:
    container_name: openplatform
    image: totalplatform/openplatform:latest
    ports:
      - 8100:8000
    volumes:
      - openplatform:/www/databases/
    environment:
      - DATABASE=postgresql://total:platform@postgres:5432/openplatform
    depends_on:
      postgres:
        condition: service_healthy
  
  uistudio: 
    container_name: uistudio
    image: totalplatform/uistudio:latest
    ports:
      - 8101:8000
  
  flow: 
    container_name: flow
    image: totalplatform/flow:latest
    ports:
      - 8102:8000

volumes:
  pgdata:
    driver: local
  openplatform:
    driver: local

Individually they work when I use host.docker.internal:<>.

However, when I import into the openplatform, using for example their domain names that would be available to openplatform:
http://flow:8102/openplatform.json. It imports, but then when I try to use the app, it's just 403.

I don't know how to gain access after that and the openplatform home or app screen really give me indication on how to access it.
How do I get back into the imported app?

License

Its reasonable to assume that this is licensed the same way as the rest of the software, but I would like to confirm this is MIT licensed.

Seriously, great work, but some minor implementation issues...

"value && value.items.length" is bad and is throwing errors.. in users-grid.html

Everywhere this kind of check is used should be replaced with

values && Array.isArray( value.items ) ....

Current code assumes values is never null, and also that items is always a non-null array.

Also, in admin.html, this code fails when value is null.. there's no check...

	Thelpers.groups = function(value) {

		if (!value.length)
			return '';

Screen Shot 2019-10-25 at 12 02 52 PM

Email is not working

Try to notify users in group, but don't receive any email. Already setup smtp config

[Security] Stored XSS in platform name

Tested version: b80b09d (latest)

Steps to reproduce the vulnerability:

  • Login in the application.
  • Click on setup.
  • Click on settings.
  • Set "><img src=x onerror=alert(document.domain)> as platform name and save.
  • Logout and XSS will fire.

poc1
poc2

Scroll disabled ?

I see that application embed to openplatform can't scroll, why that ?

Not lucky when installing...

I tried install (in a rush) and:

C:\...\Projetos\openplatform-master> node .\debug.js

{ Error: Cannot find module 'total.js/utils'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at app (C:\Users\Daniel\Projetos\openplatform-master\debug.js:11:2863)
    at run (C:\Users\Daniel\Projetos\openplatform-master\debug.js:11:3925)
    at Object.<anonymous> (C:\Users\Daniel\Projetos\openplatform-master\debug.js:11:4193)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32) code: 'MODULE_NOT_FOUND' }

X-Frame-Options sameorigin

Ahoy.

Any ideas how to bypass X-Frame-Options sameorigin,
other than disabling it on destination server?

Thanks

Loading gif issue !

screen shot 2017-05-26 at 9 28 10 pm

Loading gif stuck ? How to fix it ?

P/s : I think the url endpoint is working behind HA Proxy !

Extendable bundle?

Hello,

Is there any way to extend setup plugin in bundle? I would like to add a new page with extra settings. However I want to keep the OpenPlatform intact.

I'm thinking something like this:

bundles/openplatform.bundle
plugins/setup/--index.js
plugins/setup/public/mypage.html

OpenPlatform + Flow, user accounts

It's probably my own fault, but I have an issue with syncing and access between OpenPlatform and Flow.

I first installed Flow by a docker compose, logged in and changed the username and password, and started making a flow.

Then I added OpenPlatform to the docker compose file, changed the admin account there too, and imported my Flow app as an app in OpenPlatform, including registering the request and response tokens to the Flow settings.

It makes sense that I no longer can access the Flow app directly, and my admin account can use Flow via OpenPlatform, and see the same flow there as built earlier.

But if I make another user account in OpenPlatform, in a group which has all access rights to the Flow app, all I see of the Flow app is the top left "hamburger menu", and the bug and the magnifying glass in the top left, but none are responsive.

I've tried the "synchronize" button in the app settings as well as reloading and logging in and out. Isn't a new user in OpenPlatform supposed to be messaged to any imported apps, which then opens a new local account and workspace for them ? If this is related to me starting to use Flow before adding OpenPlatform, how do I reset this behaviour ?

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.