v0.8.0 - July Release 2017
I'm thrilled to announce the July Release - v0.8 which introduce some major improvements !
Some of the key highlights include:
- Google App Engine deployment: 1 click deploy
- Docker support: Generate Docker compose files
- Git integration Enhancement
- NPM Bundled in Materia Designer: Fix addons installation by providing NPM
- NPM scripts support (build / watch / prod)
- Has one relationship support
- SQL Playground: Test your SQL queries easily
- Log: Trace what Materia Server is doing
- Enhancements and bug fixes
Deployment
Deployment has long been a source a frustration for developers and configuring all your stack can be really painful. With this new release, we automate a good part of the work for you:
Google App Engine
Google Cloud Platform is the first deployment platform we support.
To deploy on GCP, you need a Google Cloud Platform project with a Google Cloud SQL database installed. Once configured, just click the deploy button and there you go :)
You'll benefit of all the monitoring tools proposed by Google Cloud Platform to check the health of your production environment.
Docker
Materia application now support Docker and your application can be containerized with all your production architecture in Docker VMs - with all the dependencies needed already installed for you (DB / Node.js / NPM etc...)
Materia generate for you the Dockerfile
and the docker-compose.yaml
files, then you just need to:
- Build your containers:
docker-compose build
- Run your containers:
docker-compose up
You may want to push (using docker push
) your built containers in a private registry to pull it from your production server (using docker pull
).
Git integration enhancement
This version brings a new UI to manage your application versionning via Git efficiently.
-
Instead of a single sync button which was a bit dangerous, we watch the state of the repository to display the appropriate button (Fetch / Pull / Push / Publish)
-
Auto fetch
-
Display diff of status & history
-
Stage all/Unstage all button.
NPM Bundled + Client build support
Npm is now bundled in Materia Designer so you don't need to have NPM installed locally to install addons in your application. It just works out of the box (as anybody would expect).
Having a hand on NPM give us lots of new possibility like run npm run build
within Materia Designer to build your frontend.
In your settings, a new "Client" section is available to configure your NPM scripts. You can enable the Auto Watch mode which run automatically the npm watch command to auto build your client when you open your application in Materia Designer.
Has one relationship
The "Has One" relationship is finally there which means "an entity A has 0 or 1 entity B".
e.g. a User has 0 or 1 Address
SQL Playground
To ease your SQL test, we've added a little SQL playground to allow you to run custom SQL query. It is useful when you want to execute a small query but you don't want to create a query in Materia Designer for this as you would like to remove it after your test.
Log enhancement
The logging has been enhancement in Materia Server to display exactly what's happening
Logs example:
$ materia start
(Load) Application: test
└── Path: /Users/thyb/projects/materia/tests/test-app
└── Mode: Development
└─┬ Database: OK
│ └── Dialect: sqlite
│ └── File: database.sqlite
└── Server: OK
└─┬ Addons: 1
│ └── @materia/users
└── Files
└── Database: Authenticated
└─┬ Entities
│ └─┬ @materia/users
│ │ └── user
│ │ └── user_permission
│ │ └── user_role
│ └── Completed in 16 ms
└─┬ Queries
│ └─┬ @materia/users
│ │ └── user_permission.getUserRoles
│ │ └── user_permission.getRoleUsers
│ └── Completed in 10 ms
└─┬ API
│ └─┬ @materia/users
│ │ └── POST /api/user/signin
│ │ └── POST /api/user/logout
│ │ └── GET /api/user/me
│ │ └── PUT /api/user/me
│ │ └── PUT /api/user/me/password
│ │ └── DELETE /api/user/me
│ │ └── POST /api/user/signup
│ └── Completed in 20 ms
└── Successfully loaded in 1402 ms
(Start) Application test3
└── Database: OK
└── Entities: OK
└── Addons: OK
└─┬ Server: Started
└─ Listening on http://localhost:8080
Enhancements and bug fixes
-
(App Builder) Autocomplete databases when possible
-
(App Builder) Create database if it does not exist
- (Installer/Windows) NSIS support for 32/64bits build in one binary instead of Squirrel