Miroslav Bajtoš
f844459311
Add createModelFromConfig and configureModel()
...
Add new API allowing developers to split the model definition and
configuration into two steps:
1. Build models from JSON config, export them for re-use:
```js
var Customer = loopback.createModelFromConfig({
name: 'Customer',
base: 'User',
properties: {
address: 'string'
}
});
```
2. Attach existing models to a dataSource and a loopback app,
modify certain model aspects like relations:
```js
loopback.configureModel(Customer, {
dataSource: db,
relations: { /* ... */ }
});
```
Rework `app.model` to use `loopback.configureModel` under the hood.
Here is the new usage:
```js
var Customer = require('./models').Customer;
app.model(Customer, {
dataSource: 'db',
relations: { /* ... */ }
});
```
In order to preserve backwards compatibility with loopback 1.x,
`app.model(name, config)` calls both `createModelFromConfig`
and `configureModel`.
2014-06-05 17:47:28 +02:00
Miroslav Bajtoš
ea5b9d16fc
Rename DataModel to PersistedModel
2014-06-05 09:56:00 +02:00
crandmck
d8c6f9d962
Update JSDoc
2014-06-04 17:42:18 -07:00
Miroslav Bajtoš
26874fc715
Make app.get/app.set available in browser
...
Implement settings object and methods in browser-express.
Add test/app.test.js to unit-tests run by karma.
2014-06-03 21:32:27 +02:00
Miroslav Bajtoš
88a4bb462e
Exclude express-middleware from browser bundle
...
Fix lib/loopback to include express-middleware only on the server.
Bump up strong-remoting dependency to use the version working in
browsers.
2014-06-03 21:32:27 +02:00
Ritchie Martori
fea1cee1c4
!fixup only set ctx.accessType when sharedMethod is available
2014-06-02 14:41:08 -07:00
Ritchie Martori
a2f931ed3f
Refactor ACL to allow for `methodNames` / aliases
2014-06-02 14:41:08 -07:00
Raymond Feng
bb0ddb26ec
Rename express-wrapper to express-middleware
2014-05-29 10:18:58 -07:00
Raymond Feng
49380e490f
Upgrade to Express 4.x
2014-05-29 08:44:05 -07:00
Miroslav Bajtoš
566757ba1d
Deprecate app.boot, remove app.installMiddleware
...
The bootloader has its own project `loopback-boot` now.
2014-05-29 08:38:39 +02:00
Miroslav Bajtoš
18fd61a546
Merge branch 'master' into 2.0
2014-05-28 18:41:36 +02:00
Miroslav Bajtoš
acf7af0c4e
Merge pull request #287 from strongloop/feature/connector-registry
...
app: implement `connector()` and `connectors`
2014-05-28 17:01:24 +02:00
Miroslav Bajtoš
94ec5c294a
app: implement `connector()` and `connectors`
...
Allow browserified applications to explicitly register connectors
to use in data-sources via `app.connector(name, exportsFromRequire)`.
Include built-in connectors like `Memory` and `Remote` in the registry.
Modify `dataSourcesFromConfig()` to resolve the connector via
`app.connectors` first and only then fall back to auto-require
the connector module.
2014-05-28 15:11:43 +02:00
Miroslav Bajtoš
d0c87d3420
Merge pull request #285 from STRML/fixRestApiRootTypo
...
Fix a typo in `app.boot` caused by the change from restBasePath to restApiRoot.
2014-05-28 14:56:46 +02:00
Samuel Reed
e625028486
Fix a typo in `app.boot`.
...
This typo was caused by the change from restBasePath to restApiRoot.
Signed-off-by: Samuel Reed <sam@tixelated.com>
2014-05-28 17:25:41 +08:00
Miroslav Bajtoš
7cfe450161
Make app.datasources unique per app instance
...
This removes a source of confusion in unit-tests.
2014-05-27 14:33:42 +02:00
Miroslav Bajtoš
227c2d05cd
app: flatten model config
...
Support flat structure of model config objects, where model options
are set as top-level properties.
Before:
Customer: {
dataSource: 'db',
options: {
base: 'User'
}
}
Now:
Customer: {
dataSource: 'db',
base: 'User'
}
2014-05-27 08:10:20 +02:00
Miroslav Bajtoš
bfb154d445
Modify `loopback.rest` to include `loopback.token`
...
Make `loopback.rest` self-contained, so that authentication works
out of the box.
var app = loopback();
app.enableAuth();
app.use(loopback.rest());
Note that cookie parsing middleware is not added, users have to
explicitly configure that if they want to store access tokens
in cookies.
Modify `loopback.token` to skip token lookup when the request already
contains `accessToken` property. This is in line with other
connect-based middleware like `cookieParser` or `json`.
2014-05-21 15:22:36 +02:00
Ritchie Martori
d237ae5ddb
Merge latest from master
2014-05-20 14:31:09 -07:00
Ritchie Martori
1a8ba602cc
!fixup Mark DAO methods as delegate
...
Allow juggler to mix in these methods.
2014-05-20 13:45:47 -07:00
Ritchie Martori
77bd77e625
Ensure changes are created in sync
2014-05-20 12:46:43 -07:00
Ritchie Martori
52eb72d94f
Remove un-rectify-able changes
2014-05-20 12:14:51 -07:00
Ritchie Martori
2de33d4da5
Rework change conflict detection
2014-05-19 19:54:55 -07:00
Ritchie Martori
eec7bdd5f4
- Use the RemoteObjects class to find remote objects instead of
...
creating a cache
- Use the SharedClass class to build the remote connector
- Change default base model from Model to DataModel
- Fix DataModel errors not logging correct method names
- Use the strong-remoting 1.4 resolver API to resolve dynamic remote
methods (relation api)
- Remove use of fn object for storing remoting meta data
2014-05-19 15:56:26 -07:00
Ritchie Martori
558ea60da0
In progress: rework remoting meta-data
2014-05-16 12:32:54 -07:00
Adam Schwartz
7c00119292
Fix typo "Unkown" => "Unknown"
2014-05-15 23:32:12 -04:00
Ritchie Martori
2f21f4ec1e
Rework replication test
2014-05-15 17:30:58 -07:00
Ritchie Martori
1e2ad9fba9
Change#getModel(), Doc cleanup, Conflict event
2014-05-14 09:20:04 -07:00
Ritchie Martori
4bab42478f
Add error logging for missing data
2014-05-12 10:36:10 -07:00
haio
978bc57421
Fix bug in User#resetPassword
2014-05-10 15:43:01 +08:00
Ritchie Martori
908221416e
Fix issues when using MongoDB for replication
2014-05-09 17:19:32 -07:00
Ritchie Martori
a3a6828709
Move replication implementation to DataModel
2014-05-06 13:31:23 -07:00
Ritchie Martori
f8b5fa11ec
All tests passing
2014-05-02 21:19:14 -07:00
haio
429052a0db
Ensure roleId and principalId to be string in Role#isInRole
2014-05-03 11:43:03 +08:00
Ritchie Martori
012f880078
!fixup RemoteConnector tests
2014-05-02 20:04:06 -07:00
Ritchie Martori
918596f035
Refactor DataModel remoting
...
- Move DataModel remoting setup into setup phase
- Add a remoting type converter for DataModels
- Move model tests into re-usable test utilities
- Move other test utilities into new test utilities folder
2014-05-02 18:12:24 -07:00
Ritchie Martori
69cd6a836b
!fixup .replicate() argument handling
2014-04-29 20:40:00 -07:00
Ritchie Martori
e35309ba27
Fixes for e2e replication / remote connector tests
2014-04-29 17:17:49 -07:00
haio
eae86b64f4
typo
2014-04-29 20:10:44 +08:00
haio
f44d737e7e
Add more check on principalId
2014-04-29 09:34:48 +08:00
haio
aa63d7bf4b
Convert principalId to String
2014-04-28 21:36:44 +08:00
Raymond Feng
b57c998ce2
Merge pull request #242 from strongloop/feature/fix-issue-239
...
Rename the method so that it won't conflict with Model.checkAccess
2014-04-24 10:27:18 -07:00
crandmck
1676ac6e58
Fix constructor JSDoc
2014-04-23 15:20:18 -07:00
Raymond Feng
921e35954d
Rename the method so that it won't conflict with Model.checkAccess
...
See https://github.com/strongloop/loopback/issues/239
2014-04-21 11:13:03 -07:00
Ritchie Martori
83e74ab414
Merge
2014-04-16 07:39:13 -07:00
Ritchie Martori
b660f8a59e
Add replication e2e tests
2014-04-16 07:33:17 -07:00
Ritchie Martori
e86a00de69
Merge branch master
2014-04-15 12:53:00 -07:00
Ritchie Martori
13b18065e2
Documentation cleanup
2014-04-14 14:49:29 -07:00
Ritchie Martori
940e11125d
Fix save implementation for remoting connector
2014-04-14 14:17:56 -07:00
Ritchie Martori
7c0a470d64
Add basic Remote connector e2e test
2014-04-14 12:25:41 -07:00
Ritchie Martori
5298834c68
Merge branch 'master' into feature/remoting-connector
2014-04-14 11:01:20 -07:00
Ritchie Martori
63ad8f69ae
Add test for remoting nested hidden properties
2014-04-11 11:43:37 -07:00
Alex Pica
1c1364636d
Fix #229 (Whitespaces removed
2014-04-10 06:01:58 +03:00
Miroslav Bajtoš
e8971fde41
Merge pull request #223 from strongloop/feature/improve-sharedctor-description
...
Describe the "id" parameter of model's sharedCtor
2014-04-04 07:36:03 -07:00
crandmck
dff182ed27
Clean up JSDoc comments. Remove doc for deprecated installMiddleware function
2014-04-03 11:29:00 -07:00
Miroslav Bajtoš
4c246c7f2c
Describe the "id" parameter of model's sharedCtor
...
Extend remoting metadata to describe the "id" parameter accepted
by the sharedCtor of all models.
2014-04-03 10:39:42 +02:00
crandmck
006aca6b9c
Update and cleanup JSDoc
2014-04-02 15:46:39 -07:00
crandmck
a265d67007
Cleanup and update of jsdoc
2014-04-02 15:15:21 -07:00
Ritchie Martori
5f81fad921
Merge pull request #217 from strongloop/feature/hidden-properties
...
Feature/hidden properties
2014-03-31 12:04:49 -07:00
Ritchie Martori
51d3ff892a
Merge pull request #219 from dougtoppin/fix-verify-confirm
...
Fix verify confirm
2014-03-31 12:02:48 -07:00
Doug Toppin
8b71c3022d
Update user.js
...
Corrected spacing on confirm ACL, removed extraneous comment on using hex rather than base64
2014-03-30 08:02:19 -04:00
Ritchie Martori
a08b047fab
Add hidden property documentation
2014-03-27 15:25:37 -07:00
Ritchie Martori
4c185e5453
Support host / port in Remote connector
2014-03-27 14:47:30 -07:00
Ritchie Martori
ac2206d257
Throw useful errors in DataModel stub methods
2014-03-27 14:47:29 -07:00
Ritchie Martori
64b374907a
Move proxy creation from remote connector into base model class
2014-03-27 14:47:29 -07:00
Ritchie Martori
0632f52411
Remove reload method body
2014-03-27 14:47:29 -07:00
Ritchie Martori
dcdbef861e
Add Remote connector
2014-03-27 14:47:29 -07:00
Ritchie Martori
ef7b724375
Initial client-server example
2014-03-27 14:47:29 -07:00
Doug Toppin
e52dbe2fb5
fix to enable ACL for confirm link sent by email
2014-03-23 21:06:22 -04:00
Ritchie Martori
5b50a99eb3
Add hidden property support to models
2014-03-21 12:53:04 -07:00
Ritchie Martori
c521b3c386
Allow app.model() to accept a DataSource instance
2014-03-21 12:18:00 -07:00
Ritchie Martori
de5d0b8949
Make verifications url safe
2014-03-21 12:02:11 -07:00
Raymond Feng
aaaa28d569
Add more comments
2014-03-19 16:24:50 -07:00
Raymond Feng
328a72ac91
Improve the ACL matching algorithm
...
See https://github.com/strongloop/loopback-example-access-control/issues/8
2014-03-19 15:09:20 -07:00
Raymond Feng
32a9131004
Pause the req before checking access
...
See https://github.com/strongloop/loopback-storage-service/issues/7
2014-03-17 14:40:05 -07:00
Raymond Feng
f031e79392
Remove the generated flag as the id is set by the before hook
2014-03-17 10:01:29 -07:00
crandmck
c80b334130
Improvements to JSDoc comments
2014-03-14 10:28:31 -07:00
crandmck
9fb3f3313a
Fixes to JSDoc for API docs
2014-03-13 17:25:21 -07:00
Raymond Feng
533daf4040
Remove oauth2 models as they will be packaged in a separate module
2014-03-11 22:37:54 -07:00
Ritchie Martori
57ff242308
Minor doc fix
2014-03-10 18:05:44 -07:00
Raymond Feng
89aa3595f5
Set the correct status code for User.login
...
See https://github.com/strongloop/loopback/issues/118
2014-02-28 13:19:52 -08:00
Doug Toppin
42c9777de3
using base64 caused an occasional token string to contain '+' which resulted in a space being embedded in the token. 'hex' should always produce a url safe string for the token.
2014-02-25 22:14:32 -05:00
Doug Toppin
2f301e315a
Sending email was missing the from field
2014-02-23 21:08:13 -05:00
Ritchie Martori
4e437586ed
Merge pull request #192 from strongloop/fix/port-zero
...
Remove coercion from port check
2014-02-21 10:08:27 -08:00
Raymond Feng
37646fa008
Allows options to be passed to strong-remoting
2014-02-19 15:14:31 -08:00
Ryan Graham
088c2e2296
Merge fixup
2014-02-19 14:11:16 -08:00
Ritchie Martori
138821cf8b
Merge package.json and lib/loopback.js
2014-02-19 11:44:44 -08:00
Ritchie Martori
500703e1fb
Remove coercion from port check
2014-02-18 16:54:40 -08:00
Guilherme Cirne
b466bb96c8
The simplest possible solution for clearing the handler cache when registering a model.
2014-02-18 17:40:35 -03:00
Raymond Feng
46b579dc4a
Make sure User/AccessToken relations are set up by default
...
User.login assumes the relation User.accessTokens exists
2014-02-14 10:31:30 -08:00
Ritchie Martori
e7f64a3abf
Add karma for running browser tests
2014-02-12 10:17:02 -08:00
Aurelien Chivot
c216ba03c1
Documentation (generated) fix
2014-02-11 19:14:04 +01:00
Raymond Feng
618b563c6e
Use hex encoding for application ids/keys
...
base64 encoded ids/keys are not friendly for urls
2014-02-07 11:14:01 -08:00
Ritchie Martori
867e3ca996
fixup! Assert model exists
2014-02-05 15:32:38 -08:00
Ritchie Martori
0bf7af104d
fixup! rename Change.track => rectifyModelChanges
2014-02-05 15:27:58 -08:00
Miroslav Bajtoš
38f4748021
Add app.isAuthEnabled.
...
The flag is set by `app.enableAuth` and can be used to detect
whether the access control is enabled.
2014-02-05 18:46:22 +01:00
Miroslav Bajtoš
b13ff35697
Make app.models unique per app instance
...
Remove a source of confusion in unit-tests.
2014-02-04 20:28:19 +01:00
Raymond Feng
592f3f9278
Make sure the configured ACL submodel is used
2014-02-03 16:00:01 -08:00
Ritchie Martori
13f67385d0
Add model tests
2014-01-30 14:20:34 -08:00
Ritchie Martori
ab8d1ae109
Add replication example
2014-01-30 14:20:34 -08:00