mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
b7faf3aac0
|
@ -39,7 +39,6 @@ ArangoDB and shouldn't be used if possible.
|
||||||
* Foxx: the Foxx sessions option `jwt` has been removed entirely. Please use the `sesssions-jwt` app from the Foxx app store or use the `crypto` module's JWT functions directly.
|
* Foxx: the Foxx sessions option `jwt` has been removed entirely. Please use the `sesssions-jwt` app from the Foxx app store or use the `crypto` module's JWT functions directly.
|
||||||
* Foxx: the Foxx sessions option `type` has been removed entirely. Please use the options `cookie` and `header` instead.
|
* Foxx: the Foxx sessions option `type` has been removed entirely. Please use the options `cookie` and `header` instead.
|
||||||
* Foxx: the Foxx sessions option `sessionStorageApp` has been removed entirely. Please use the option `sessionStorage` instead.
|
* Foxx: the Foxx sessions option `sessionStorageApp` has been removed entirely. Please use the option `sessionStorage` instead.
|
||||||
* The module `org/arangodb/extend` is deprecated. Please use the module `extendible` instead.
|
|
||||||
* AQL: the AQL function `SKIPLIST` has been removed.
|
* AQL: the AQL function `SKIPLIST` has been removed.
|
||||||
* Simple queries: the following simple query functions are now deprecated: collection.near(), collection.within(), collection.geo(), collection.fulltext(), collection.range(), collection.closedRange(). It is recommended to replace calls to these functions with equivalent AQL queries, which are more flexible.
|
* Simple queries: the following simple query functions are now deprecated: collection.near(), collection.within(), collection.geo(), collection.fulltext(), collection.range(), collection.closedRange(). It is recommended to replace calls to these functions with equivalent AQL queries, which are more flexible.
|
||||||
* Simple queries: using negative values for SimpleQuery.skip() is not supported any longer.
|
* Simple queries: using negative values for SimpleQuery.skip() is not supported any longer.
|
||||||
|
@ -48,5 +47,4 @@ ArangoDB and shouldn't be used if possible.
|
||||||
## 2.8
|
## 2.8
|
||||||
* Foxx: the property `assets` in manifests has been removed entirely. Please use the `files` property and an external build tool instead.
|
* Foxx: the property `assets` in manifests has been removed entirely. Please use the `files` property and an external build tool instead.
|
||||||
* Foxx: properties `setup` and `teardown` in manifests have been removed entirely. Please use the `scripts` property instead.
|
* Foxx: properties `setup` and `teardown` in manifests have been removed entirely. Please use the `scripts` property instead.
|
||||||
* The module `org/arangodb/extend` has been removed entirely. Please use the module `extendible` instead.
|
|
||||||
* Simple queries: the following simple query functions will be removed: collection.near(), collection.within(), collection.geo(), collection.fulltext(), collection.range(), collection.closedRange(). It is recommended to replace calls to these functions with equivalent AQL queries, which are more flexible.
|
* Simple queries: the following simple query functions will be removed: collection.near(), collection.within(), collection.geo(), collection.fulltext(), collection.range(), collection.closedRange(). It is recommended to replace calls to these functions with equivalent AQL queries, which are more flexible.
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
width: 160px;
|
width: 160px;
|
||||||
|
|
||||||
img.icon {
|
img.icon {
|
||||||
|
border: 1px solid $c-content-border;
|
||||||
|
border-radius: 3px;
|
||||||
height: auto;
|
height: auto;
|
||||||
max-height: 160px;
|
max-height: 160px;
|
||||||
max-width: 160px;
|
max-width: 160px;
|
||||||
|
@ -28,18 +30,27 @@
|
||||||
left: 170px;
|
left: 170px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
|
padding-top: 1px;
|
||||||
|
|
||||||
input.delete,
|
input.delete,
|
||||||
input.upgrade,
|
input.upgrade,
|
||||||
input.switch-mode {
|
input.switch-mode {
|
||||||
margin-top: (160px - 4 * 30px) / 3;
|
margin-top: (160px - 4 * 30px) / 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 90px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.header_right {
|
.header_right {
|
||||||
margin-left: 300px;
|
margin-left: 300px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
|
|
||||||
|
input {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.header_line {
|
.header_line {
|
||||||
h3 {
|
h3 {
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -48,12 +59,13 @@
|
||||||
|
|
||||||
.license,
|
.license,
|
||||||
.version {
|
.version {
|
||||||
@include border-radius(6px);
|
@include border-radius(3px);
|
||||||
|
|
||||||
|
background-color: $c-white;
|
||||||
border: 1px solid $c-editor-toolbar;
|
border: 1px solid $c-editor-toolbar;
|
||||||
color: $c-editor-toolbar;
|
color: $c-editor-toolbar;
|
||||||
font-size: .6em;
|
font-size: .6em;
|
||||||
padding: 0 8px;
|
padding: 0 8px 2px;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -2px;
|
top: -2px;
|
||||||
}
|
}
|
||||||
|
@ -85,7 +97,8 @@
|
||||||
|
|
||||||
.swagger {
|
.swagger {
|
||||||
iframe {
|
iframe {
|
||||||
border: 1px solid black;
|
border: 1px solid $c-content-border;
|
||||||
|
border-radius: 3px;
|
||||||
height: 600px;
|
height: 600px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
@ -99,9 +112,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
aside.meta {
|
aside.meta {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid $c-content-border;
|
||||||
|
border-radius: 3px;
|
||||||
clear: right;
|
clear: right;
|
||||||
float: left;
|
float: left;
|
||||||
width: 200px;
|
width: 198px;
|
||||||
|
|
||||||
|
dl {
|
||||||
|
padding-left: 7px;
|
||||||
|
padding-top: 5px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ $c-dark-grey: #999;
|
||||||
$c-darker-grey: #666;
|
$c-darker-grey: #666;
|
||||||
|
|
||||||
$c-new-grey: #8c8a89;
|
$c-new-grey: #8c8a89;
|
||||||
|
$c-content-border: rgba(104, 103, 102, 0.1);
|
||||||
|
|
||||||
$c-transp: transparent;
|
$c-transp: transparent;
|
||||||
$c-low-transp: rgba(0, 0, 0, .7);
|
$c-low-transp: rgba(0, 0, 0, .7);
|
||||||
|
|
|
@ -78,7 +78,7 @@ exports.ArangoQueryCursor = ArangoQueryCursor;
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
ArangoQueryCursor.prototype.toString = function () {
|
ArangoQueryCursor.prototype.toString = function () {
|
||||||
var isCaptureModeActive = internal.isCaptureMode()
|
var isCaptureModeActive = internal.isCaptureMode();
|
||||||
var rows = [ ], i = 0;
|
var rows = [ ], i = 0;
|
||||||
while (++i <= 10 && this.hasNext()) {
|
while (++i <= 10 && this.hasNext()) {
|
||||||
rows.push(this.next());
|
rows.push(this.next());
|
||||||
|
@ -99,7 +99,7 @@ ArangoQueryCursor.prototype.toString = function () {
|
||||||
result += "]";
|
result += "]";
|
||||||
|
|
||||||
if (!isCaptureModeActive) {
|
if (!isCaptureModeActive) {
|
||||||
print(result);
|
internal.print(result);
|
||||||
result = "";
|
result = "";
|
||||||
}
|
}
|
||||||
if (rows.length > 0) {
|
if (rows.length > 0) {
|
||||||
|
@ -119,7 +119,7 @@ ArangoQueryCursor.prototype.toString = function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isCaptureModeActive) {
|
if (!isCaptureModeActive) {
|
||||||
print(result);
|
internal.print(result);
|
||||||
result = "";
|
result = "";
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
|
|
||||||
const joi = require('joi');
|
const joi = require('joi');
|
||||||
const Foxx = require('org/arangodb/foxx');
|
const Foxx = require('org/arangodb/foxx');
|
||||||
const deprecated = require('org/arangodb/deprecated');
|
|
||||||
const paramSchema = joi.string().optional().description('Foxx session ID');
|
const paramSchema = joi.string().optional().description('Foxx session ID');
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@ -162,22 +161,6 @@ class Sessions {
|
||||||
opts = {};
|
opts = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts.type) {
|
|
||||||
deprecated('2.8', (
|
|
||||||
'The Foxx session option "type" is deprecated and will be removed.'
|
|
||||||
+ ' Use the options "cookie" and/or "header" instead.'
|
|
||||||
));
|
|
||||||
if (opts.type === 'cookie') {
|
|
||||||
delete opts.header;
|
|
||||||
opts.cookie = opts.cookie || true;
|
|
||||||
} else if (opts.type === 'header') {
|
|
||||||
delete opts.cookie;
|
|
||||||
opts.header = opts.header || true;
|
|
||||||
} else {
|
|
||||||
throw new Error('Only the following session types are supported at this time: ' + sessionTypes.join(', '));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (opts.cookie) {
|
if (opts.cookie) {
|
||||||
if (opts.cookie === true) {
|
if (opts.cookie === true) {
|
||||||
opts.cookie = {};
|
opts.cookie = {};
|
||||||
|
|
|
@ -362,7 +362,6 @@ function SetRoutesFoxxControllerSpec () {
|
||||||
|
|
||||||
app.activateSessions({
|
app.activateSessions({
|
||||||
sessionStorage: 'sessions',
|
sessionStorage: 'sessions',
|
||||||
type: 'cookie',
|
|
||||||
cookie: {
|
cookie: {
|
||||||
name: 'sid',
|
name: 'sid',
|
||||||
secret: 'secret'
|
secret: 'secret'
|
||||||
|
@ -1481,193 +1480,6 @@ function SetupSessions () {
|
||||||
}
|
}
|
||||||
|
|
||||||
assertUndefined(err);
|
assertUndefined(err);
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwt: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: {
|
|
||||||
secret: 'secret'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwtHS256: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: {
|
|
||||||
secret: 'secret',
|
|
||||||
algorithm: 'HS256'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwtNone: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: {
|
|
||||||
algorithm: 'none'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwtNoneWithSecret: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: {
|
|
||||||
algorithm: 'none',
|
|
||||||
secret: 'secret'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwtUnverified: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: {
|
|
||||||
verify: false
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwtShorthand: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: 'secret'
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testWorksWithJwtNoneShorthand: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: true
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertUndefined(err);
|
|
||||||
},
|
|
||||||
|
|
||||||
testRefusesJwtAlgorithmWithSecret: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'header',
|
|
||||||
header: 'X-Session-Token',
|
|
||||||
jwt: {
|
|
||||||
algorithm: 'HS256'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertTrue(err instanceof Error);
|
|
||||||
},
|
|
||||||
|
|
||||||
testRefusesUnknownSessionsTypes: function () {
|
|
||||||
var err;
|
|
||||||
|
|
||||||
app = new FoxxController(fakeContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
app.activateSessions({
|
|
||||||
sessionStorage: 'sessions',
|
|
||||||
type: 'magic',
|
|
||||||
cookie: {
|
|
||||||
name: 'sid',
|
|
||||||
secret: 'secret'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
err = e;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertTrue(err instanceof Error);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue