Browse Source

feat: telemetry client module

pull/621/head
NGPixel 7 years ago
parent
commit
cbaa20da3f
8 changed files with 63 additions and 141 deletions
  1. 1
      client/js/app.js
  2. 4
      client/js/constants/index.js
  3. 4
      client/js/constants/telemetry.js
  4. 27
      client/js/modules/telemetry.js
  5. 157
      config.sample.yml
  6. 1
      package.json
  7. 2
      server/views/configure/index.pug
  8. 8
      yarn.lock

1
client/js/app.js

@ -17,6 +17,7 @@ import store from './store'
// ====================================
import localization from './modules/localization'
import telemetry from './modules/telemetry'
// ====================================
// Load Helpers

4
client/js/constants/index.js

@ -1,5 +1,7 @@
import GRAPHQL from './graphql'
import TELEMETRY from './telemetry'
export default {
GRAPHQL
GRAPHQL,
TELEMETRY
}

4
client/js/constants/telemetry.js

@ -0,0 +1,4 @@
export default {
GA_ID: 'UA-9094100-7',
GA_REMOTE: 'http://www.google-analytics.com/collect'
}

27
client/js/modules/telemetry.js

@ -0,0 +1,27 @@
import uuid from 'uuid/v4'
/* global CONSTANTS, wiki */
export default {
cid: '',
init() {
this.cid = uuid()
},
sendEvent() {
wiki.$http.post(CONSTANTS.TELEMETRY.GA_REMOTE, {
v: 1, // API version
tid: CONSTANTS.TELEMETRY.GA_ID, // Tracking ID
aip: 1, // Anonymize IP
ds: 'server', // Data source
t: 'event', // Hit Type
ec: 'setup', // Event Category
ea: 'start', // Event Action
el: 'success', // Event Label
ev: 1 // Event Value
}).then(resp => {
}, err => {
console.error(err)
})
}
}

157
config.sample.yml

@ -5,23 +5,9 @@
# https://docs.requarks.io/wiki/install
# ---------------------------------------------------------------------
# Title of this site
# Port the main server should listen to
# ---------------------------------------------------------------------
title: Wiki
# ---------------------------------------------------------------------
# Full public path to the site, without the trailing slash
# ---------------------------------------------------------------------
# INCLUDE CLIENT PORT IF NOT 80/443!
host: http://localhost
# ---------------------------------------------------------------------
# Port the main server should listen to (80 by default)
# ---------------------------------------------------------------------
# To use process.env.PORT, comment the line below:
port: 80
# ---------------------------------------------------------------------
@ -33,140 +19,41 @@ paths:
data: ./data
# ---------------------------------------------------------------------
# Upload Limits
# Database
# ---------------------------------------------------------------------
# In megabytes (MB)
uploads:
maxImageFileSize: 3
maxOtherFileSize: 100
db:
host: localhost
port: 5432
user: wikijs
pass: wikijsrocks
db: wiki
# ---------------------------------------------------------------------
# Site Language
# Redis
# ---------------------------------------------------------------------
# Possible values: en, de, es, fa, fr, ja, ko, nl, pt, ru, sr, tr or zh
lang: en
redis:
host: localhost
port: 6379
db: 0
password: null
# Enable for right to left languages (e.g. arabic):
langRtl: false
# ---------------------------------------------------------------------
# Site Authentication
# ---------------------------------------------------------------------
public: false
auth:
defaultReadAccess: false
local:
enabled: true
google:
enabled: true
clientId: GOOGLE_CLIENT_ID
clientSecret: GOOGLE_CLIENT_SECRET
microsoft:
enabled: true
clientId: MS_APP_ID
clientSecret: MS_APP_SECRET
facebook:
enabled: false
clientId: FACEBOOK_APP_ID
clientSecret: FACEBOOK_APP_SECRET
github:
enabled: false
clientId: GITHUB_CLIENT_ID
clientSecret: GITHUB_CLIENT_SECRET
slack:
enabled: false
clientId: 'SLACK_CLIENT_ID'
clientSecret: 'SLACK_CLIENT_SECRET'
ldap:
enabled: false
url: ldap://serverhost:389
bindDn: cn='root'
bindCredentials: BIND_PASSWORD
searchBase: o=users,o=example.com
searchFilter: (uid={{username}})
tlsEnabled: false
tlsCertPath: C:\example\root_ca_cert.crt
azure:
enabled: false
clientId: APP_ID
clientSecret: APP_SECRET_KEY
resource: '00000002-0000-0000-c000-000000000000'
tenant: 'YOUR_TENANT.onmicrosoft.com'
# ---------------------------------------------------------------------
# Secret key to use when encrypting sessions
# ---------------------------------------------------------------------
# Use a long and unique random string (256-bit keys are perfect!)
sessionSecret: 1234567890abcdefghijklmnopqrstuvxyz
# ---------------------------------------------------------------------
# Database Connection String
# ---------------------------------------------------------------------
# You can also use an ENV variable by using $ENV_VAR_NAME as the value
db: mongodb://localhost:27017/wiki
# ---------------------------------------------------------------------
# Git Connection Info
# ---------------------------------------------------------------------
git:
url: https://github.com/Organization/Repo
branch: master
auth:
# Type: basic or ssh
type: ssh
# Only for Basic authentication:
username: marty
password: MartyMcFly88
# Only for SSH authentication:
privateKey: /etc/wiki/keys/git.pem
sslVerify: true
# Default email to use as commit author
serverEmail: marty@example.com
# Whether to use user email as author in commits
showUserEmail: true
# ---------------------------------------------------------------------
# Features
# ---------------------------------------------------------------------
# You can enable / disable specific features below
features:
linebreaks: true
mathjax: true
# ---------------------------------------------------------------------
# External Logging
# Background Workers
# ---------------------------------------------------------------------
# Leave 0 for auto based on CPU cores
externalLogging:
bugsnag: false
loggly: false
papertrail: false
rollbar: false
sentry: false
workers: 0
# ---------------------------------------------------------------------
# Color Theme
# High Availability
# ---------------------------------------------------------------------
# Read the docs BEFORE changing these settings!
theme:
primary: indigo
alt: blue-grey
viewSource: all # all | write | false
footer: blue-grey
code:
dark: true
colorize: true
ha:
nodeuid: primary
readonly: false

1
package.json

@ -121,6 +121,7 @@
"stream-to-promise": "2.2.0",
"tar": "4.0.1",
"through2": "2.0.3",
"uuid": "3.1.0",
"validator": "9.0.0",
"validator-as-promised": "1.0.2",
"winston": "2.4.0",

2
server/views/configure/index.pug

@ -29,7 +29,7 @@ block body
section
p.control.is-fullwidth
input#ipt-telemetry(type='checkbox', v-model='conf.telemetry', name='ipt-telemetry')
label.label(for='ipt-telemetry') Enable telemetry
label.label(for='ipt-telemetry') Allow Telemetry
span.desc Help Wiki.js developers improve this app with anonymized #[a(href='https://wiki.requarks.io/docs/telemetry') telemetry].
p.control.is-fullwidth
input#ipt-upgrade(type='checkbox', v-model='conf.upgrade', name='ipt-upgrade')

8
yarn.lock

@ -7633,14 +7633,14 @@ utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
uuid@3.1.0, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
uuid@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
v8flags@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"

Loading…
Cancel
Save