1.1.2 (2020-05-20)
- cli: new command
materia generate addon
taking following arguments: name/packageName && prefix. User is prompted if not provided (01022bf) (f0500ad).
- lib/package-manager: fix executable path on linux (env PATH) (4911f89).
- deps/chokidar: upgrade to latest v3.4.0 (ead27ae),
- deps/sequelize: upgrade to latest v5.21.7 (7ac67a6),
- deps/minimist: upgrade to v1.2.3 (220bb5),
- deps/sqlite3: upgrade to latest v4.2.0 (e2413e9),
- tests: remove extra describe blocks for better readability (eadcd47).
1.1.1 (2020-02-19)
- lib/database: new runSql method (bdf3369).
- admin-api/sql: sql queries should work on sqlite (bdf3369).
1.1.0 (2020-02-17)
- lib/permissions: ensure multiple middleware/permission to be always invoked in same order (d62b84),
- lib/server: extend port already used check (fcd961d),
- lib/server: correctly increment port on many fallbacks (3638206),
- lib/server: ensure there is only one error listener on many fallbacks (4b5f3b4),
- lib/api: align error msg style for missing method (c0556a3),
- lib/api: return properly multiple missing params error msg (3937f53).
- lib/package-manager: use an abstract class for Yarn/Npm (ce7077e),
- lib/package-manager: allow passing version on install/upgrade (d95ecc8),
- lib/package-manager: allow installing devDependencies (edd9a0d),
- admin-api/dependencies: allow passing version on install/upgrade (d95ecc8),
- admin-api/dependencies: allow installing devDependencies (edd9a0d).
- typescript: upgrade to fixed version 3.7.5 (version alignment with Materia Designer),
- chodikar: upgrade to v3.3.1,
- execa: upgrade to v4,
- sqlite3: upgrade to 4.4.1
1.0.0-rc.2 (2019-05-28)
- lib/synchronize: fix compareField() method for FK with sqlite dialect (ae7e63b) (a02bd9e) (01188db) (1d43e8b)
- tests/relations: rename test entities with more accurate names (19dc309)
- lib/app: generate dockerfiles every time settings are saved (f1b4993)
1.0.0-rc.1 (2019-05-27)
- adminAPI/git: new endpoint to set remote (98b0563)
- adminAPI/git: new publish endpoint (5f88c75)
- lib/database: add ssl in dialectOptions based on materia config file (e609bcd)
- dependencies: upgrade to latest @materia/interfaces v1.0.0-rc.0 (b0085f2)
1.0.0-rc.0 (2019-04-23)
- dependencies: fix security warning by upgrading mocha + tslint + chokidar (2ad2dcf)
- lib/entities: fix delete_entity operation not working when syncing entities to database (e569b6a)
- tests/synchronize: new integration tests for testing syncing database to entities (e569b6a) (15860cc)
- sequelize: upgrade from v4 to latest v5.7.0 (f6cf13f) (d6dfced)
- sequelize: turn off operatorAliases (67537e1)
- typescript: upgrade to v3.2.4 (f6cf13f)
- CI/travis: update typescript version to v3.2.4 (470ff1e)
1.0.0-beta.16 (2019-04-09)
- adminAPI/packageManager: clean logs (3ebedfd)
- adminAPI/client: fix installAll when no client config exists (6f8be08) (1736894)
- lib/entity: round x/y position with 2 decimals (d49914c)
- adminAPI/git: new git clone endpoint (de2c355)
1.0.0-beta.15 (2019-03-25)
- adminAPI/addons: Fix getConfig() endpoint error when no config exists (1dcc51f)
- cli: Fix displaying error when starting an app (d90a438)
- lib/app: don't synchronize database if disabled (8cb9e8e)
- lib/api: allow adding 'query' endpoints to virtual entity even if database is disabled (dcec5c6)
- lib/npm: avoid using npm from 'materia-designer' in dev (972d17f)
- lib/files: simplify private _moveItem() method (5a7d353)
- lib/queries/findAll: Fix error when raw option is not set (9a1c288)
- readme: Update test badge (348db5d)
- tests: Modify some assertions to pass tests on PostgresSQL (08cbcea)
- CI/travis: Fix tests template app temp directory (8c6c836)
- CI/travis: Update node_js version to 10.15 (e1b0b07)
- CI/travis: Update typescript version to 2.9.2 (bb56f8f)
- CI/travis: Update before_install/install/script to use yarn (2466fdb)
- adminAPI/client: new installAll dependencies and install single dependency endpoints (1d4ffb0) (36902bd)
- lib/packageManager: new package manager file which uses npm or yarn to manage dependencies (28efeff) (d0e939c) (bb32720) (dc899c2)
- dependencies: Upgrade mocha to v6.0.2 (c936c07)
1.0.0-beta.14 (2019-03-07)
- lib/entities: Fix renaming/deleting virtual entities fails (32ba096)
- tslint: Fix node_modules not correctly excluded in linterOptions (2d1ce32)
- lib/app: Add isDir/relativepath properties to tree file response (b66f1dc)
- adminAPI/files: Return file or folder as move/add item success response (d1cf690)
- dependencies: Upgrade @materia/interfaces to v1.0.0-beta.9 (c9f602f)
1.0.0-beta.13 (2019-02-22)
- adminAPI/endpoints.ctrl: Fix watcher not disable when adding custom query (c93294c)
- lib/database: Fix createDatabase() unhandled promise rejection (f0cd255)
- lib/api/permissions: Fix incorrect permission file path on save (e32ccd9)
- lib/api/permissions: add fromAddon property (c2fac08)
- dependencies: remove unused deps: handlebars, sequelize-cli and ts-node (4cfcf06)
- dependencies: upgrade typescript to v2.9.2 (4cfcf06)
- dependencies: Upgrade chokidar and @materia/interfaces (2bc5f1e)
- lib/watcher: set explicitly useFsEvents option for macOs + comment unsuported if statement (6b705ca)
1.0.0-beta.12 (2019-02-19)
- adminAPI/api/permissions: Fix watcher not disable on delete/update/create + improve request errors reponses (81e3694)
- lib/queries/findAll: Fix orderBy param checks when request params doesn't exists (6afaaf7)
- tests: fix tests with latest changes (006b3f0)
1.0.0-beta.11 (2019-02-19)
- adminAPI/client: Use
chalk
instead ofstrip-ansi
for coloring outputs (bfe55d0) - adminAPI/database: fix getRelatedEntities() method + disable watcher on all methods (448af30)
- adminAPI/database: send error messages instead of full errors (e59b13d)
- adminAPI/database: fix runQuery() method after changing url param name + harmonize error responses (6fcfc60)
- adminAPI/database: fix runQuery() null response (bc56e09)
- cli: Fix version color using
chalk
(5215b4e) - lib/entities: Load virtual entities even if database is disabled (aad5a9c)
- lib/entities: retrieve correct x/y position on creation if already exists in entities-position json file (2b0d573)
- lib/entities: allow adding belongsTo/hasMany and belongsToMany relationships on table to itself (548cb93)
- lib/DBEntity: Remove hard fix when listing related tables data before adding belongsTo/hasMany relationship (33a390c)
- lib/queries/findAll: Fix incorrect count for findAll query with join + related test (aee39df)
- lib/queries/findAll: Allow running query with join when no PK on joined table (12b600a)
- lib/watcher: Remove unused win32 watcher folder (0cb1c40)
- tests: add
materia.json
files in test apps templates to clean warnings (0be22f1) - tests/relation: re-add (uncomment) belongsTo failing test (51c8afc)
- typescript/interfaces: use interface from
@materia/interfaces
+ remove duplicated ones (4c01a3b) (18f9909) (dd56d66) (309933b)
- global: add
ts-lint
devDependency + lint all files (7539028) (e28fada) (1e6d279) (3a06a6d) - adminAPI/entities: allow adding virtual entity (462eab7)
- lib/entities: save virtual entity default queries in related model json file (f697676)
- lib/queries/findAll: allow passing/overriding orderBy params, even if not set (190709b) (55e6cab)
- lib/queries/findAll: set default limit/page/offset if not set (190709b)
- lib/synchronize: support 'now()' value for datetime defaultValue (e53275d)
- lib/field: support 'now()' value for datetime defaultValue (fd6d3d2)
- lib/addons: new isInstalled() method returning a boolean value based on a package name (a689c7)
- typescript/typings: remove old types folder in favor of definetly type package
@types/*
(1a4b210) - tests: new integrations tests for: database and entities sync, entities without PK, now() default value and relation from table to itself (998743d)
- dependencies: remove unused packages: request, @types/request, colors, cookie-parser, express-ws, lodash, pretty-error, strip-ansi and winston (ca12dec)
- dependencies: move @types/express @types/ws and @types/sequelize from devDependencies to dependencies (ca12dec)
1.0.0-beta.10 (2019-01-28)
- lib/self-migration: Update client config migration (532e089)
- addons.ctrl: Use async readFile() method when retrieving bundle file (56c175c)
1.0.0-beta.9 (2019-01-20)
- database.ctrl: Fix AdminAPI
DatabaseLib.loadEntitiesJSon()
method fail if DB disabled (ec1d889) - endpoints.ctrl: Fix addon custom endpoints cannot be added through the Admin API (1173114)
- hooks: Fix req.query modified in
afterEndpoint
hook (03554a9) - websocket: Fix closing other sockets on connect (10c86a8)
- lib/app: Reset App's API Rest on reload (df6c469)
- lib/api: Handle
websocket
endpoints in api.json (b642adf) - lib/api: new removeAll() method (c2e19b2)
- dependencies/ws: Upgrade from
v5.1.1
tov6.1.2
(2133f6d)
1.0.0-beta.8 (2019-01-11)
- boirlerplates: Emit complete error object on boilerplate generation failure instead of
error.data
(7f54544) - boirlerplates: Reject an error if
output
orprojectName
folders already exists to prevent unexpected failure or unwanted overwrite (ba24c49) - boirlerplates: Fix client package.json path
undefined
after boilerplate project generation (2697d2) - git: Fix
unstage
file not working in newly created repo withoutHEAD
(a51854f) - git: Fix Admin API
POST '/materia/git/pull'
endpoint error response (77af2ac) - package-manager: Fix Admin API endpoints broken after url param name change (f48cb00)
- permissions: Handle invalid permissions with missing files (7ec092e) (0946a28)
- permissions: Fix Admin API permissions endpoints empty error responses, send
error.message
instead of full error (2e7240d) - sequelize: Fix
Sequelize.Op
import error when packaged in Materia Designer (ea973ac)
- boilerplates: Admin API single url for boilerplates generation
POST '/materia/boilerplates/:framework'
(411c5c1) - boirlerplates: Admin API endpoint
POST '/materia/boilerplates/:framework'
don't need a body anymore. Default value are used when nooutput
/projectName
value found. (ba24c49) - boilerplates/React: Root
package.json
scripts not modified anymore when generating a React project (7c03ba1) - boilerplates/Vue: Node_modules and lock files are not deleted anymore before Vue monopackage project generation (9d2a1d9)
- dependencies: Upgrade to @materia/interfaces v1.0.0-beta.3
- dependencies: Upgrade fs-extra and related @types/fs-extra to v4 (72f7284)
- dependencies: Admin API dependencies endpoints,
owner
andpkg
params are now managed in a single url paramdependency
(remove duplicated endpoints url) (d415aa0) - documentation: Add missing doc for Admin API endpoint
GET '/materia/addons/:pkg/setup'
(db29a58) - documentation: Swagger json file lint enhancement (578d4aa)
- documentation: Update permissions Admin API swagger docs (578d4aa)
- documentation: New
CHANGELOG.md
file (eeafe94) - permissions: Add/update method comments and enhance typings (f593509) (b38e180)
- permissions: New Admin API endpoint
GET /materia/permissions/:permission
that allow to retrieve a single permission by his name (2a4912e) - permissions: When a permission's name is updated with the Admin API endpoint
PUT '/materia/permissions/:permission'
, all related endpoints using this permission are automatically updated with the new permission name (8528da4)
- lib/App:
app.start()
method now returnsPromise<number>
corresponding to the launched server port (1a3f8d4) - permissions: Use interface
IPermission
from@materia/[email protected]
(delete duplicatedIPermission
from@materia/server
) (0946a28) - permissions: Single admin API endpoint
POST '/materia/permissions'
used to add a permission with his related code file. The admin API endpointPOST '/materia/permissions/new'
doesn't exists anymore (91f43d9) - permissions: Admin API endpoint
PUT 'materia/permissions/permission'
can now be used to either modify the permission informations or the permission's file content (91f43d9)
1.0.0-beta.7 (2018-12-06)
- actions/hooks: Fix Admin API endpoint
GET '/materia/actions'
incorrect url (64dbfe44) - actions/hooks: Support actions with ids containing '/' char in AdminAPI endpoints
PUT '/materia/actions/:id'
andDELETE /materia/actions/:id
(64dbfe44) - actions/hooks: Fix req.query modified on
beforeEnpoint
andafterEndpoint
hooks (e9f1fee) - database: Fix Admin API database controller error responses for sync and remove app methods 424f089)
- dependencies: Fix npm security warnings (6d4319b)
- queries: Reject an error if a required param is not found when launching custom query (bda2446)
- queries: Prevent findAll query result count to be
NaN
(9e1bdaa) - sequelize: Fix string based operator warning (632561a)
- sequelize: Add missing operators aliases:
$or
,$and
and$not
(9ed472b) - server: Fix getBaseUrl() method when mode is undefined (621d49f)
- tests: Fix integration tests (0484678)
- addons: New Admin API endpoint
GET /materia/addons/:pkg/setup
(6abdfd8) - documentation: New swagger-ui documentation for the Admin API (4abbf53) (e22e8f9)
- queries:
For queries that use a condition with
LIKE / NOT LIKE
operators, if the parameter value do not contain at least one%
character, the%
character is automatically added to the beginning and end of the value. For example, if the value of the parameter is 'test', the value that will be passed in the query is '% test%'. On the other hand, if the value passed is '% test', the value will be unchanged. (6f06fa1)
1.0.0-beta.6 (2018-11-12)
- cli: Fix end of line cli scripts when publishing from a windows machine, add a
prebulishOnly
and apostpublish
script (3f55a72) (cf7a277)
- docker: New admin API endpoint
POST '/materia/dockerfile'
to generate a docker file with the current launched app settings (7c957af)
1.0.0-beta.5 (2018-11-12)
1.0.0-beta.4 (2018-10-29)
- lib/npx: Use
which
package to discovernpx
global path (d1bf49f) - lib/angular-cli: Fix exec()
cwd
undefined if not provided (ae178d2)
- package.json: update
homepage
,bugs
andrepository
urls to point to new materiahq github organization (0ad39f4) - readme: Update install command (d811e5c)
1.0.0-beta.3 (2018-10-28)
- client: Fix client settings
packageJsonPath
value and delete config ifwww
doesn't exists when saving app setings using the Admin API endpointPOST '/materia/config'
(c67d97a) - client: Fix client settings not saved when initializing a new simple static directory (ed1a45a)
- database/postgres: Fix change column type from
text
tointeger
fail (dce4729) - database: Fix
tryDatabase()
static method error not rejected when the database provided doesn't exists (e85c193)
- dependencies: Upgrade to
@materia/[email protected]
dependency (9bc0870) (797acf2) (1820698) (94969f4) (252e3cf) (b3abbd7) (772e250)
1.0.0-beta.2 (2018-10-28)
- boilerplates/angular: Delete generated .git folder when creating a two-packages structure angular project (Nested git repository not managed in Materia Designer) (65b467b)
- boilerplates/angular: Prevent generated .git folder to overwrite root .git repository folder when creating a mono-package angular project (87ab361)
- boilerplates/angular: Prevent initial root
start
script to be overwritten when generating a mono-package Angular project (b44ed69) - boilerplates/angular: Delete generated
readme.md
when generating a mono-package structure Angular project (b283dc9) - boilerplates/angular: Add
prod
andwatch
scripts to the client package.json when generating a two-packages structure Angular project (266f4c8) - boilerplates/vue: Preserve intial .gitignore file when generating a monopackage Vue project (6e6db92)
- cli/help.js: fix
package.json
relative path (786f70e) - client: Emit an error if client config script not found when using the Admin API endpoint
POST '/materia/client/build'
(623e928) - client: Fix Admin API client controller
startWatching()
method (902d6fe) - database: Fix
createDatabase()
static method formysql
dialect (2e40299) - files: Fix Admin API endpoint
GET '/materia/files'
response warning. Useres.status(status).send(..)
instead of depreactedres.send(status, ..)
(b521cd0) - git: Fix select
status
andhistory
file containing spaces in name and fixgetHistoryDetail()
method (e470374) - git: Fix select
stage
andunstage
files containing spaces in name (c8c170c) - git: Clean redundant code with new
private _fixGitPath()
method (4fc2db8) - package.json: Set license field to a valid SPDX value (002f950)
- server: Fix
getBaseUrl()
method to return live url in production mode (d1cd0b8)
- client: Admin API endpoint
POST '/materia/client/build'
launch theprod
script only ifreq.body.prod = true
and theprod
script exists in the client config, otherwise it will launch thebuild
script (07e373e) - boilerplates/angular: Fix angular prject mono-package structure
angular.json
config fileroot
value + preserve root.gitignore
file from overwrite during project generation + move generatedtsconfig.json
/tslint.json
/.gitignore
files to client folder (7182c1f) - dependencies: Remove deprecated
whereis
dependency (2cdcb57) - dependencies: Remove deprecated
tedious
dependency (0e128e1) - dependencies: Remove
package-lock.json
file in favoryarn.lock
(111daf8) - server: Define the express static folder on
start
instead ofload
. This change allow an addon modify the default materia server behavior before start (3352a14)
- dependencies: Add new
@materia/interfaces
dependency (9bc0870) - dependencies: Add
execa
dependency (3cb3f03) - dependencies: Upgrade
sequelize
,mysql2
andsqlite3
dependencies (80460d1)
- controllers: The Admin API endpoint
GET '/materia/controllers'
used to retrieve a controller code content becomeGET '/materia/controllers/:name'
(658b1f3) - dependencies: Upgrade to
@materia/[email protected]
dependency (9bc0870) - lib/angular-cli: Merge
execInFolder()
method inexec()
method (8d9658b) - lib/vue-cli: Merge
execInFolder()
method inexec()
method (811d405) - lib: Clean/harmonize
exec()
method withfolder
argument (faa369) - lib/npm: merge
npm.execInFolderBackground()
method withnpm.execInBackground()
and mergernpm.execInFolder()
method withnpm.execInFolder()
(faa369)
1.0.0-beta.1 (2018-10-10)
- database: Fix
createDatabase()
method for databases containing-
character in their names (4ff1c22) - lib/api: Change
getMethodColor()
method from private to public (4cb5961) - server: Fix server not starting if
materia.json
empty (584c183) - server: Disable files watcher in production mode (873a650)
- permissions: Return
401
status instead of500
when unauthorized (d9d53f2)
- actions/hooks: Add the ability to setup hooks when running
queries
orendpoints
. Hooks are used to launch a specific query before or after the related request has been processed (beforeQuery
/afterQuery
andbeforeEndpoint
/afterEndpoint
) (da45ccf) - admin API: New Admin API Rest allowing to use and interact with a @materia/server instance through http (6551981)
- boilerplates: You can now generate a front-end project, through the admin API, in your materia application that uses your favorite framework: Angular (angular-cli), Vue (vue-cli) or React (npx create-react-app)
- cli: New
relink
command (22f9f15) - cli: use
chalk
package to colorize outputs (1ea992c) - cli: Colorize endpoint calls (4d9d2cf)
- database/postgres: Support for PostGIS fields (431fb6e)
- entities: New type of entity called
virtual
, which representing a remote ressource instead of a database table (5ee48cb) - passport: Expose
passport
inapp.server
asapp.server.passport
(can now be used in addons) (561f9b2) - permissions: Add
app
object onreq
asreq.app
to allow running database queries (d9d53f2) - permissions: Permission file
class
support and ES6 import support (dc03785) - server: Allow Authorization header in CORS API call (1fb03aa)
- server: Allow express static folder to be change dynamically at runtime (58b1140)
- websocket: Add websocket capability with
express-ws
package (dc03785)
- config files: The server, database and addons settings are now centralized in a single json file
materia.json
(materia.prod.json
to change specific properties in production) - addons: New addon system works only with new Angular v2+ structure (569e7d3)
- npm: Global
npm
is used, and npm is not bundled anymore in @materia/server - package.json: package name is now
@materia/server
instead ofmateria-server
(1dcaa5b) - watchers: Watch only .json files in root (384e211)
- server: Disable Admin API in production if root password is undefined
0.8.0 (2017-07-14)
0.7.5 (2017-05-20)
0.7.4 (2017-05-20)
0.7.3 (2017-05-17)
0.7.2 (2017-04-18)
0.7.1 (2017-04-11)
0.7.0 (2017-04-10)
0.6.1 (2017-03-01)
0.6.0 (2017-01-17)
0.5.3 (2016-12-12)
0.5.2 (2016-12-11)
0.5.1 (2016-12-09)
0.5.0 (2016-12-08)
0.4.1 (2016-11-14)
0.4.0 (2016-11-08)
0.3.1 (2016-10-11)
0.3.0 (2016-10-06)
0.2.2 (2016-09-06)
0.2.1 (2016-09-03)
0.2.0 (2016-09-02)
0.1.4 (2016-09-02)
0.1.3 (2016-08-03)
0.1.2 (2016-08-02)
0.1.1 (2016-07-25)
You can now paginate all your findAll
queries and endpoints: materiahq/materia-designer-public#14
Query configuration interface changed a bit :
page
is now supported
page
, limit
and offset
support parameters format with =
sign.
e.g.
{
"id": "getDoneTodos",
"type": "findAll",
"params": [
{
"name": "page",
"type": "number",
"required": false
}
],
"opts": {
"conditions": [
{
"name": "done",
"operator": "=",
"value": "true"
}
],
"limit": "10",
"page": "=page"
}
}
- Fix findAll / findOne queries with no createdAt or updatedAt
- Fix updateField with required / no default value, and rows with null values
- Check naming collision when adding a relation
0.1.0 (2016-07-25)
Documentation: getmateria.com/docs
You are welcome to join us on our Slack channels to talk with us / ask your questions about the project !
Enjoy ! Thanks for beta-testing :)