| Age | Commit message (Collapse) | Author |
|
This pull request removes the hard dependency on Google for
authenticating users and migrates to Auth0 as Identity Provider for OpenDC.
This has as benefit that we can authenticate users without having to manage
user data ourselves and do not have a dependency on Google accounts anymore.
- Frontend cleanup:
- Use CSS modules everywhere to encapsulate the styling of React components.
- Perform all communication in the frontend via the REST API (as opposed to WebSockets).
The original approach was aimed at collaborative editing, but made normal operations
harder to implement and debug. If we want to implement collaborative editing in the
future, we can expose only a small WebSocket API specifically for collaborative editing.
- Move to FontAwesome 5 (using the official React libraries)
- Use Reactstrap where possible. Previously, we mixed raw Bootstrap classes with
Reactstrap, which is confusing.
- Reduce the scope of the Redux state. Some state in the frontend application can be
kept locally and does not need to be managed by Redux.
- Migrate from Create React App (CRA) to Next.js since it allows us to pre-render
multiple pages as well as opt-in to Server Side Rendering.
- Remove the Google login and use Auth0 for authentication now.
- Use Node 16
- Backend cleanup:
- Remove Socket.IO endpoint from backend, since it is not needed by the frontend
anymore. Removing it reduces the attack surface of OpenDC as well as the maintenance efforts.
- Use Auth0 JWT token for authorizing API accesses
- Refactor API endpoints to use Flask Restful as opposed to our custom in-house
routing logic. Previously, this was needed to support the Socket.IO endpoint,
but increases maintenance effort.
- Expose Swagger UI from API
- Use Python 3.9 and uwsgi to host Flask application
- Actualize OpenAPI schema and update to version 3.0.
**Breaking API Changes**
* This pull request removes the users collection from the database table. Instead, we now use the user identifier passed by Auth0 to identify the data that belongs to a user.
|
|
This change fixes the deployment scripts necessary for the frontend and
ensures that runtime variables work again.
|
|
This change re-adds the support for Sentry. This was lost during the
migration from CRA to Next.js.
|
|
This change updates the deployment guide to include instructions on
configuring Auth0 for OpenDC. This process should not be much more
difficult than creating the Google Application.
|
|
This change adds support for specifying the OAuth2 client identifier
for Swagger API docs authentication. This allows users to experiment
with the API documentation without needing to create an Auth0 account
themselves.
|
|
This change updates the frontend to use the FontAwesome 5 React library
that renders SVG icons as opposed to CSS icon fonts. This migration
resolves a couple of issues we had with server-side rendering of the
previous FontAwesome icons.
|
|
This change updates the API server to run by default using Python 3.9.
|
|
This change updates the frontend codebase to move away from the Google
login and instead use Auth0 as generic Identity Provider. This allows
users to login with other accounts as well.
Since Auth0 has a free tier, users can experiment themselves with OpenDC
locally without having to pay for the login functionality. The code has
been written so that we should be able to migrate away from Auth0 once
it is not a suitable Identity Provider for OpenDC anymore.
|
|
This change updates the API Schema to the more recent OpenAPI version 3
and in addition actualizes the API specification to match the API
again.
|
|
This change adds Swagger UI to the REST API endpoint in order to
experiment with the API endpoints interactively. It also serves as the
documentation for the API endpoints.
|
|
This change updates the API to use Flask Restful instead of our own
in-house REST library. This change reduces the maintenance effort and
allows us to drastically simplify the API implementation needed for the
OpenDC v2 API.
|
|
This change addresses the deprecations that were caused by the migration
to Kotlin 1.5.
|
|
|
|
This change removes any of the user handling and endpoints from the
OpenDC API server. The API server does not need to store user
information other than an identifier in the database.
|
|
This change updates the OpenDC API to use Auth0 for API authorization.
This removes the hard dependency on Google for logging into OpenDC and
simplifies implementation as we do not have to store user information
anymore, other than the user identifier.
|
|
This change removes the Socket.IO endpoint from the public API now that
we have switched to the REST API instead. This decreases the possible
exposure to vulnerabilities as well as the maintenance burden.
|
|
This change updates the structure of the OpenDC frontend in order to
improve the maintainability of the frontend.
|
|
This change updates the frontend so that the modal state is not stored
inside Redux but instead is stored using the useState hook. This
simplifies the design of the modal components.
|
|
This change simplifies the logic and components of the projects page and
reduces its dependency on Redux for simple operations.
|
|
|
|
This change updates the web frontend to use Next.js instead of Create
React App (CRA). Next.js enables the possibility of rendering pages on
the server side (which reduces the time to first frame) and overall
provides a better development experience.
Future commits will try to futher optimize the implementation for
Next.js.
|
|
This change updates the Redux store initialization to ensure that the
Redux logger is last in the middleware change. If we do not do this,
Redux Logger might log thunds and promises, but not actual actions.
See https://github.com/LogRocket/redux-logger/issues/20
|
|
This change removes the socket.io websocket connection/client in favour
of the OpenDC REST API. The socket.io websocket implementation was
intended to be used for interactive and collaborative datacenter design
and exploration.
However, we do not support this functionality at the moment
(collaborative design and exploration) and having the entire API run
over this websocket connection is fragile and not standard practice.
To improve maintainability, we therefore remove the websocket
implementation in favour of the OpenDC REST API implementation using
the fetch API. If we want to implement collaboration in the future, we
will develop appropriate extensions in conjuction with the existing REST
API. For this, we should look for standard and existing implementation
of this functionality.
|
|
This change updates the frontend codebase by moving the component
styling into CSS module files as opposed to the global styles which we
used before. In addition, I have changed the syntax to the newer SCSS
syntax, which is more similar to CSS.
These changes reduces the styling conflicts that can occur between
components and allows us to migrate to systems that do not support
importing global styles in components. Moreover, we can benefit from
treeshaking using CSS modules.
|
|
This change updates the mathjs dependency to version 7.6.0 in order to
fix the high-severity vulnerability in mathjs version lower than 7.5.1.
|
|
This change fixes the version number in package.json which contained the
suffix "-rc1", which is apparently not supported by npm.
|
|
|
|
|
|
This change updates the React dependencies to version 17, in order to
keep up to date with React.
|
|
|
|
|
|
This change removes the prevent default from the mouse scroll since
Chrome does not allow it anymore.
|
|
This change refactors the frontend to use hooks for obtaining state
within the Redux store as opposed to using Higher-Order Components
(HOCs). This eliminates a lot of clutter in the components.
|
|
This change moves the version number to the next release, v2.1-rc1.
|
|
This change updates the version numbers officially to v2.0 in order to
start the release process.
|
|
This change adds the trace endpoint, which was unfortunately removed due
to an incorrect .gitignore statement.
|
|
|
|
This pull request contains various updates to the opendc.org homepage,
in order to reflect the updates from OpenDC 2.0.
|
|
This change updates the workaround used to access runtime variables in
the React frontend, in order to improve the ergonimics when using the
development mode of CRA (Create React App).
|
|
|
|
|
|
|
|
|
|
|
|
This change migrates the node-sass dependency to sass in order
to support Node 16.
|
|
Bumps [eventlet](https://github.com/eventlet/eventlet) from 0.25.2 to 0.31.0.
- [Release notes](https://github.com/eventlet/eventlet/releases)
- [Changelog](https://github.com/eventlet/eventlet/blob/master/NEWS)
- [Commits](https://github.com/eventlet/eventlet/compare/v0.25.2...v0.31.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
|
This change adds support for the Gradle version catalog feature in our
build configuration. This allows us to have a single file,
gradle/libs.versions.toml, which contains all the dependency versions
used in this project.
|
|
Bumps [flask-cors](https://github.com/corydolphin/flask-cors) from 3.0.8 to 3.0.9.
- [Release notes](https://github.com/corydolphin/flask-cors/releases)
- [Changelog](https://github.com/corydolphin/flask-cors/blob/master/CHANGELOG.md)
- [Commits](https://github.com/corydolphin/flask-cors/compare/3.0.8...3.0.9)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
|
This change updates the Gradle build configuration so that the
application modules (as opposed the libraries) are not published onto
Maven Central.
|
|
This change updates the build scripts to use type-safe project accessors
when specifying build dependencies between modules.
|