PerceptumNL / edubox-platform

(active) backend for eduraam
0 stars 1 forks source link

Useful to work with json configuration file at remote app host? #6

Open mslatour opened 8 years ago

mslatour commented 8 years ago

@tdoolan and others, what do you think of this approach in some near/distant future?

Core idea Configuring apps for the platform by means of a JSON file hosted at the remote app server named eduapp.json. That JSON file would contain descriptive details intended for the listing in the app store as well as configuration options like the settings it provides.The file could contain a version number to deal with different dialects in case we change the structure over time.

Benefit Adopting this would mean someone would only have to add their root web location and configuration would happen automatically. Even more interesting however is updating. The developer could update the configuration file during the development process. The platform could either reload the config file on fixed intervals (midnight) or on some trigger given by the app developer. If a new setting was provided, the setting would then be automatically be made available to the schools. Depending on how we want to have that flow, the maintainer of the school could even be triggered for action first if necessary.

Dealing with app support without developer involvement For remote apps that we (or someone else) added to the system without involvement of the app developer we could create proxy apps. Proxy apps could in its smallest version be a remotely stored (even on github) eduapp.json file containing the remote url of the app that is being wrapped, with additional options set to determine the login method or to specify additional scripts to be injected at certain places. Perhaps we should have a rule that these type of apps should at least be reviewed on each change, to prevent others from loading online banking sites via our system with script injections.

tdoolan commented 8 years ago

I think the core idea is solid, as it relieves us of having to edit settings for remote app developers. I think it would work well as a JSON file describing simple settings and corresponding ranges/sets of values, which we could then apply as compacts setting to groups etc. using our usermanagement.

I am not as sure about the benefit of proxy apps. The resulting json would be stored in the database when updated, so why not make it a simple admin screen or maybe a form to post the config JSON? Do you see this as a list of predefined post processing scripts or as custom scripts for each setting?

mslatour commented 8 years ago

Maybe we should keep proxy apps out of this discussion for now, since they are all created internally with Router extensions so far.

Possible components of the JSON configuration could be:

  1. name, description and logo of the app
  2. settings of the app
  3. the core learning goals it provides activities for
  4. the permission it requires as app, which could include
    • access to specific user information (full name, real email address, etc)
    • access to central services (sending email to student X, get progress on learning goals, etc)
    • access to data from other applications, for example apps that also focus on language learning