Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wiki-js
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
wiki-js
Commits
9e2f1caa
Commit
9e2f1caa
authored
Jul 08, 2018
by
NGPixel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: storage module refactor + UI fixes
parent
bc12db72
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
334 additions
and
329 deletions
+334
-329
admin-auth.vue
client/components/admin/admin-auth.vue
+1
-1
admin-contribute.vue
client/components/admin/admin-contribute.vue
+3
-3
admin-general.vue
client/components/admin/admin-general.vue
+2
-2
admin-groups.vue
client/components/admin/admin-groups.vue
+4
-4
admin-locale.vue
client/components/admin/admin-locale.vue
+2
-2
admin-rendering.vue
client/components/admin/admin-rendering.vue
+2
-2
admin-storage.vue
client/components/admin/admin-storage.vue
+1
-1
admin-system.vue
client/components/admin/admin-system.vue
+3
-3
admin-theme.vue
client/components/admin/admin-theme.vue
+1
-1
app.scss
client/scss/app.scss
+0
-1
authentication.js
server/db/models/authentication.js
+2
-3
storage.js
server/db/models/storage.js
+16
-6
common.js
server/helpers/common.js
+9
-8
azure.js
server/modules/storage/azure.js
+0
-30
definition.yml
server/modules/storage/azure/definition.yml
+7
-0
storage.js
server/modules/storage/azure/storage.js
+23
-0
digitalocean.js
server/modules/storage/digitalocean.js
+0
-34
definition.yml
server/modules/storage/digitalocean/definition.yml
+10
-0
storage.js
server/modules/storage/digitalocean/storage.js
+23
-0
disk.js
server/modules/storage/disk.js
+0
-28
definition.yml
server/modules/storage/disk/definition.yml
+5
-0
storage.js
server/modules/storage/disk/storage.js
+23
-0
dropbox.js
server/modules/storage/dropbox.js
+0
-29
definition.yml
server/modules/storage/dropbox/definition.yml
+6
-0
storage.js
server/modules/storage/dropbox/storage.js
+23
-0
gdrive.js
server/modules/storage/gdrive.js
+0
-29
definition.yml
server/modules/storage/gdrive/definition.yml
+6
-0
storage.js
server/modules/storage/gdrive/storage.js
+23
-0
git.js
server/modules/storage/git.js
+0
-44
definition.yml
server/modules/storage/git/definition.yml
+20
-0
storage.js
server/modules/storage/git/storage.js
+23
-0
onedrive.js
server/modules/storage/onedrive.js
+0
-29
definition.yml
server/modules/storage/onedrive/definition.yml
+6
-0
storage.js
server/modules/storage/onedrive/storage.js
+23
-0
s3.js
server/modules/storage/s3.js
+0
-31
definition.yml
server/modules/storage/s3/definition.yml
+8
-0
storage.js
server/modules/storage/s3/storage.js
+23
-0
scp.js
server/modules/storage/scp.js
+0
-38
definition.yml
server/modules/storage/scp/definition.yml
+13
-0
storage.js
server/modules/storage/scp/storage.js
+23
-0
No files found.
client/components/admin/admin-auth.vue
View file @
9e2f1caa
...
...
@@ -51,7 +51,7 @@
v-model='cfg.value.value'
prepend-icon='settings_applications'
)
v-divider
v-divider
.mt-3
v-subheader.pl-0 Registration
.pr-3
v-switch.ml-3(
...
...
client/components/admin/admin-contribute.vue
View file @
9e2f1caa
...
...
@@ -9,14 +9,14 @@
a(href='https://requarks.io', target='_blank') requarks.io
a(href='https://github.com/Requarks/wiki/graphs/contributors', target='_blank')
{{
$t
(
'admin:contribute.openSourceContributors'
)
}}
.body-1.pt-3.pl-3
{{
$t
(
'admin:contribute.needYourHelp'
)
}}
v-divider
v-divider
.mt-3
v-subheader
{{
$t
(
'admin:contribute.fundOurWork'
)
}}
.body-1.pl-3
{{
$t
(
'admin:contribute.openCollective'
)
}}
v-card-actions.mt-3.ml-2
v-btn(depressed, color='primary', href='https://opencollective.com/wikijs')
v-icon(left) local_atm
span
{{
$t
(
'admin:contribute.makeADonation'
)
}}
v-divider
v-divider
.mt-3
v-subheader
{{
$t
(
'admin:contribute.contribute'
)
}}
.body-1.pl-3
ul
...
...
@@ -26,7 +26,7 @@
a(href='https://github.com/Requarks/wiki/issues', target='_blank') Github
i18next(path='admin:contribute.helpTranslate', tag='li')
a(href='https://gitter.im/Requarks/wiki', target='_blank') Gitter
v-divider
v-divider
.mt-3
v-subheader
{{
$t
(
'admin:contribute.spreadTheWord'
)
}}
.body-1.pl-3
ul
...
...
client/components/admin/admin-general.vue
View file @
9e2f1caa
...
...
@@ -15,7 +15,7 @@
v-subheader General
.px-3
v-text-field(label='Site Title', required, :counter='50', v-model='siteTitle', prepend-icon='public')
v-divider
v-divider.mt-3
v-subheader SEO
.px-3
v-text-field(label='Site Description', :counter='255', prepend-icon='public')
...
...
@@ -51,7 +51,7 @@
persistent-hint
hint='Check this option if a round logo frame doesn\'t work with your logo.'
)
v-divider
v-divider
.mt-3
v-switch(
v-model='displayMascot'
label='Display Wiki.js Mascot'
...
...
client/components/admin/admin-groups.vue
View file @
9e2f1caa
...
...
@@ -22,10 +22,10 @@
v-spacer
v-text-field(solo, append-icon='search', label='Search', single-line, hide-details, v-model='search')
v-data-table(
:items='groups'
,
:headers='headers'
,
:search='search'
,
:pagination.sync='pagination'
,
:items='groups'
:headers='headers'
:search='search'
:pagination.sync='pagination'
:rows-per-page-items='[15]'
hide-actions
)
...
...
client/components/admin/admin-locale.vue
View file @
9e2f1caa
...
...
@@ -31,7 +31,7 @@
v-list-tile-content
v-list-tile-title(v-html='data.item.name')
v-list-tile-sub-title(v-html='data.item.nativeName')
v-divider
v-divider
.mt-3
v-switch(
v-model='autoUpdate'
:label='$t("admin:locale.autoUpdate.label")'
...
...
@@ -65,7 +65,7 @@
)
span
{{
$t
(
'admin:locale.namespacingPrefixWarning.title'
,
{
langCode
:
selectedLocale
}
)
}}
.
caption
.
grey
--
text
{{
$t
(
'admin:locale.namespacingPrefixWarning.subtitle'
)
}}
v
-
divider
v
-
divider
.
mt
-
3
.
mb
-
4
v
-
select
(
:
disabled
=
'!namespacing'
:
items
=
'installedLocales'
...
...
client/components/admin/admin-rendering.vue
View file @
9e2f1caa
...
...
@@ -169,7 +169,7 @@
persistent-hint
hint='Links will automatically be converted to clickable links.'
)
v-divider
v-divider
.mt-3
v-switch(
v-model='linkify'
label='Automatically convert line breaks'
...
...
@@ -177,7 +177,7 @@
persistent-hint
hint='Add linebreaks within paragraphs.'
)
v-divider
v-divider
.mt-3
v-switch(
v-model='linkify'
label='Highlight code blocks'
...
...
client/components/admin/admin-storage.vue
View file @
9e2f1caa
...
...
@@ -51,7 +51,7 @@
v-model='cfg.value.value'
prepend-icon='settings_applications'
)
v-divider
v-divider
.mt-3
v-subheader.pl-0 Sync Direction
.body-1.ml-3 Choose how content synchronization is handled for this storage target.
.pr-3.pt-3
...
...
client/components/admin/admin-system.vue
View file @
9e2f1caa
...
...
@@ -25,7 +25,7 @@
v-list-tile-action
v-list-tile-action-text
{{
$t
(
'admin:system.published'
)
}}
{{
info
.
latestVersionReleaseDate
|
moment
(
'from'
)
}}
v-divider
v-divider
.mt-3
v-subheader
{{
$t
(
'admin:system.hostInfo'
)
}}
v-list-tile(avatar)
...
...
@@ -76,7 +76,7 @@
v-list-tile-content
v-list-tile-title
{{
info
.
nodeVersion
}}
v-divider
v-divider
.mt-3
v-subheader Redis
v-list-tile(avatar)
...
...
@@ -89,7 +89,7 @@
v-list-tile-action
v-list-tile-action-text
{{
$t
(
'admin:system.ramUsage'
,
{
used
:
info
.
redisUsedRAM
,
total
:
info
.
redisTotalRAM
}
)
}}
v
-
divider
v
-
divider
.
mt
-
3
v
-
subheader
{{
info
.
dbType
}}
v
-
list
-
tile
(
avatar
)
...
...
client/components/admin/admin-theme.vue
View file @
9e2f1caa
...
...
@@ -26,7 +26,7 @@
v-list-tile-content
v-list-tile-title(v-html='data.item.text')
v-list-tile-sub-title(v-html='data.item.author')
v-divider
v-divider
.mt-3
v-switch(
v-model='darkMode'
label='Dark Mode'
...
...
client/scss/app.scss
View file @
9e2f1caa
@import
"global"
;
@import
"base/reset"
;
@import
"base/base"
;
@import
'base/icons'
;
...
...
server/db/models/authentication.js
View file @
9e2f1caa
...
...
@@ -2,7 +2,6 @@ const Model = require('objection').Model
const
autoload
=
require
(
'auto-load'
)
const
path
=
require
(
'path'
)
const
_
=
require
(
'lodash'
)
const
commonHelper
=
require
(
'../../helpers/common'
)
/* global WIKI */
...
...
@@ -56,7 +55,7 @@ module.exports = class Authentication extends Model {
if
(
_
.
isPlainObject
(
value
))
{
let
cfgValue
=
{
type
:
typeof
value
.
type
(),
value
:
!
_
.
isNil
(
value
.
default
)
?
value
.
default
:
commonHelper
.
getTypeDefaultValue
(
value
)
value
:
!
_
.
isNil
(
value
.
default
)
?
value
.
default
:
new
value
()
// eslint-disable-line new-cap
}
if
(
_
.
isArray
(
value
.
enum
))
{
cfgValue
.
enum
=
value
.
enum
...
...
@@ -65,7 +64,7 @@ module.exports = class Authentication extends Model {
}
else
{
_
.
set
(
result
,
key
,
{
type
:
typeof
value
(),
value
:
commonHelper
.
getTypeDefaultValue
(
value
)
value
:
new
value
()
// eslint-disable-line new-cap
})
}
return
result
...
...
server/db/models/storage.js
View file @
9e2f1caa
const
Model
=
require
(
'objection'
).
Model
const
autoload
=
require
(
'auto-load'
)
const
path
=
require
(
'path'
)
const
fs
=
require
(
'fs-extra'
)
const
_
=
require
(
'lodash'
)
const
yaml
=
require
(
'js-yaml'
)
const
commonHelper
=
require
(
'../../helpers/common'
)
/* global WIKI */
...
...
@@ -35,9 +36,18 @@ module.exports = class Storage extends Model {
static
async
refreshTargetsFromDisk
()
{
try
{
const
dbTargets
=
await
WIKI
.
db
.
storage
.
query
()
const
diskTargets
=
autoload
(
path
.
join
(
WIKI
.
SERVERPATH
,
'modules/storage'
))
// -> Fetch definitions from disk
const
storageDirs
=
await
fs
.
readdir
(
path
.
join
(
WIKI
.
SERVERPATH
,
'modules/storage'
))
let
diskTargets
=
[]
for
(
let
dir
of
storageDirs
)
{
const
def
=
await
fs
.
readFile
(
path
.
join
(
WIKI
.
SERVERPATH
,
'modules/storage'
,
dir
,
'definition.yml'
),
'utf8'
)
diskTargets
.
push
(
yaml
.
safeLoad
(
def
))
}
// -> Insert new targets
let
newTargets
=
[]
_
.
for
Own
(
diskTargets
,
(
target
,
targetKey
)
=>
{
_
.
for
Each
(
diskTargets
,
target
=>
{
if
(
!
_
.
some
(
dbTargets
,
[
'key'
,
target
.
key
]))
{
newTargets
.
push
({
key
:
target
.
key
,
...
...
@@ -47,8 +57,8 @@ module.exports = class Storage extends Model {
config
:
_
.
transform
(
target
.
props
,
(
result
,
value
,
key
)
=>
{
if
(
_
.
isPlainObject
(
value
))
{
let
cfgValue
=
{
type
:
typeof
value
.
typ
e
(),
value
:
!
_
.
isNil
(
value
.
default
)
?
value
.
default
:
commonHelper
.
getTypeDefaultValue
(
value
)
type
:
value
.
type
.
toLowerCas
e
(),
value
:
!
_
.
isNil
(
value
.
default
)
?
value
.
default
:
commonHelper
.
getTypeDefaultValue
(
value
.
type
)
}
if
(
_
.
isArray
(
value
.
enum
))
{
cfgValue
.
enum
=
value
.
enum
...
...
@@ -56,7 +66,7 @@ module.exports = class Storage extends Model {
_
.
set
(
result
,
key
,
cfgValue
)
}
else
{
_
.
set
(
result
,
key
,
{
type
:
typeof
valu
e
(),
type
:
value
.
toLowerCas
e
(),
value
:
commonHelper
.
getTypeDefaultValue
(
value
)
})
}
...
...
server/helpers/common.js
View file @
9e2f1caa
const
_
=
require
(
'lodash'
)
module
.
exports
=
{
/**
* Get default value of type
*
* @param {any}
Type Primitive Typ
e
* @param {any}
type primitive type nam
e
* @returns Default value
*/
getTypeDefaultValue
(
Type
)
{
if
(
_
.
isArray
(
Type
))
{
return
_
.
head
(
Type
)
}
else
{
return
new
Type
()
getTypeDefaultValue
(
type
)
{
switch
(
type
.
toLowerCase
())
{
case
'string'
:
return
''
case
'number'
:
return
0
case
'boolean'
:
return
false
}
}
}
server/modules/storage/azure.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'azure'
,
title
:
'Azure Blob Storage'
,
props
:
{
accountName
:
String
,
accountKey
:
String
,
container
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/azure/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
azure
title
:
Azure Blob Storage
author
:
requarks.io
props
:
accountName
:
String
accountKey
:
String
container
:
String
server/modules/storage/azure/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/digitalocean.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'digitalocean'
,
title
:
'DigialOcean Spaces'
,
props
:
{
accessKeyId
:
String
,
accessSecret
:
String
,
region
:
{
type
:
String
,
default
:
'nyc3'
},
bucket
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/digitalocean/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
digitalocean
title
:
DigialOcean Spaces
author
:
requarks.io
props
:
accessKeyId
:
String
accessSecret
:
String
region
:
type
:
String
default
:
nyc3
bucket
:
String
server/modules/storage/digitalocean/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/disk.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'disk'
,
title
:
'Local FS'
,
props
:
{
path
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/disk/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
disk
title
:
Local FS
author
:
requarks.io
props
:
path
:
String
server/modules/storage/disk/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/dropbox.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'dropbox'
,
title
:
'Dropbox'
,
props
:
{
appKey
:
String
,
appSecret
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/dropbox/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
dropbox
title
:
Dropbox
author
:
requarks.io
props
:
appKey
:
String
appSecret
:
String
server/modules/storage/dropbox/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/gdrive.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'gdrive'
,
title
:
'Google Drive'
,
props
:
{
clientId
:
String
,
clientSecret
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/gdrive/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
gdrive
title
:
Google Drive
author
:
requarks.io
props
:
clientId
:
String
clientSecret
:
String
server/modules/storage/gdrive/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/git.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'git'
,
title
:
'Git'
,
props
:
{
authType
:
{
type
:
String
,
default
:
'ssh'
,
enum
:
[
'basic'
,
'ssh'
]
},
repoUrl
:
String
,
branch
:
{
type
:
String
,
default
:
'master'
},
verifySSL
:
{
type
:
Boolean
,
default
:
true
},
sshPrivateKeyPath
:
String
,
basicUsername
:
String
,
basicPassword
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/git/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
git
title
:
Git
author
:
requarks.io
props
:
authType
:
type
:
String
default
:
'
ssh'
enum
:
-
'
basic'
-
'
ssh'
repoUrl
:
String
branch
:
type
:
String
default
:
'
master'
verifySSL
:
type
:
Boolean
default
:
true
sshPrivateKeyPath
:
String
basicUsername
:
String
basicPassword
:
String
server/modules/storage/git/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/onedrive.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'onedrive'
,
title
:
'OneDrive'
,
props
:
{
clientId
:
String
,
clientSecret
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/onedrive/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
onedrive
title
:
OneDrive
author
:
requarks.io
props
:
clientId
:
String
clientSecret
:
String
server/modules/storage/onedrive/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/s3.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
's3'
,
title
:
'Amazon S3'
,
props
:
{
accessKeyId
:
String
,
accessSecret
:
String
,
region
:
String
,
bucket
:
String
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/s3/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
s3
title
:
Amazon S3
author
:
requarks.io
props
:
accessKeyId
:
String
accessSecret
:
String
region
:
String
bucket
:
String
server/modules/storage/s3/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
server/modules/storage/scp.js
deleted
100644 → 0
View file @
bc12db72
module
.
exports
=
{
key
:
'scp'
,
title
:
'SCP (SSH)'
,
props
:
{
host
:
String
,
port
:
{
type
:
Number
,
default
:
22
},
username
:
String
,
privateKeyPath
:
String
,
basePath
:
{
type
:
String
,
default
:
'~'
}
},
activated
(
opts
)
{
},
deactivated
(
opts
)
{
},
init
(
opts
)
{
},
created
(
opts
)
{
},
updated
(
opts
)
{
},
deleted
(
opts
)
{
},
renamed
(
opts
)
{
}
}
server/modules/storage/scp/definition.yml
0 → 100644
View file @
9e2f1caa
key
:
scp
title
:
SCP (SSH)
author
:
requarks.io
props
:
host
:
String
port
:
type
:
Number
default
:
22
username
:
String
privateKeyPath
:
String
basePath
:
type
:
String
default
:
'
~'
server/modules/storage/scp/storage.js
0 → 100644
View file @
9e2f1caa
module
.
exports
=
{
async
activated
(
opts
)
{
},
async
deactivated
(
opts
)
{
},
async
init
(
opts
)
{
},
async
created
(
opts
)
{
},
async
updated
(
opts
)
{
},
async
deleted
(
opts
)
{
},
async
renamed
(
opts
)
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment