Skip to content

Commit 4671c95

Browse files
committed
Merge branch 'release/2.0.2'
2 parents 3af5975 + 21e91c4 commit 4671c95

39 files changed

+1420
-1119
lines changed

Diff for: CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7+
## [2.0.2] - 2020-09-20
8+
9+
### Added
10+
11+
- [vuepress-plugin-ackee](https://github.com/spekulatius/vuepress-plugin-ackee)
12+
- [gridsome-plugin-ackee](https://github.com/DenzoNL/gridsome-plugin-ackee)
13+
14+
### Changed
15+
16+
- More relevant data on the dashboard: Ackee now shows the top data of the last 24 hours instead of last 7 days
17+
- Heroku installation docs (#154, thanks @Go-Merk and @aleccool213)
18+
719
## [2.0.1] - 2020-08-16
820

921
This updates improves the look of the README and adds some missing pieces of documentation.

Diff for: README.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,17 @@ I am working hard on continuously developing and maintaining Ackee. Please consi
7676
### Related
7777

7878
- [ackee-tracker](https://github.com/electerious/ackee-tracker) - Transfer data to Ackee
79+
- [ackee-bitbar](https://github.com/electerious/ackee-bitbar) - Ackee stats in your macOS menu bar
7980
- [gatsby-plugin-ackee-tracker](https://github.com/Burnsy/gatsby-plugin-ackee-tracker) - Gatsby plugin for Ackee
8081
- [Soapberry](https://wordpress.org/plugins/soapberry/) - WordPress plugin for Ackee
8182
- [Ackee-PHP](https://github.com/BrookeDot/ackee-php) - A PHP Class for Ackee
8283
- [use-ackee](https://github.com/electerious/use-ackee) - Use Ackee in React
8384
- [nuxt-ackee](https://github.com/bdrtsky/nuxt-ackee) - Nuxt.js module for Ackee
8485
- [django-ackee-middleware](https://github.com/suda/django-ackee-middleware) - Django middleware for Ackee
86+
- [gridsome-plugin-ackee](https://github.com/DenzoNL/gridsome-plugin-ackee) - Gridsome plugin for Ackee
87+
- [vuepress-plugin-ackee](https://github.com/spekulatius/vuepress-plugin-ackee) - VuePress-plugin for Ackee
8588

8689
### Links
8790

8891
- [Follow us on Twitter](https://twitter.com/getackee)
89-
- [Vote for Ackee on ProductHunt](https://www.producthunt.com/posts/ackee)
92+
- [Vote for Ackee on ProductHunt](https://www.producthunt.com/posts/ackee)

Diff for: app.json

+18-7
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,22 @@
1616
"ACKEE_PASSWORD": {
1717
"description": "Password which will be used to log in to Ackee",
1818
"required": true
19+
},
20+
"ACKEE_MONGODB": {
21+
"description": "MongoDB URI which will be used to connect a database to Ackee",
22+
"required": true
23+
},
24+
"ACKEE_ALLOW_ORIGIN": {
25+
"description": "Tracked domains which will be used on Ackee (CORS headers)",
26+
"required": true
27+
},
28+
"ACKEE_TTL": {
29+
"description": "Specifies how long an Ackee TTL token is valid (Default: 3600000)",
30+
"required": false
31+
},
32+
"ACKEE_TRACKER": {
33+
"description": "Specifies a custom name for the tracking script (Default: tracker.js)",
34+
"required": false
1935
}
20-
},
21-
"addons": [
22-
{
23-
"plan": "mongolab"
24-
}
25-
]
26-
}
36+
}
37+
}

Diff for: docs/Anonymization.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Ackee also removes personal data from previous records when a new record with an
1414

1515
Ackee won't track personal information by default, but it has the ability to do so in a privacy focused way. Our recommendation:
1616

17-
1. Ask the user for permission to track personal data and set a cookie to remember his decision
17+
1. Ask the user for permission to track personal data and set a cookie to remember their decision
1818
2. Enable `detailed` with the next page view (an option of [ackee-tracker](https://github.com/electerious/ackee-tracker))
1919
3. Ackee now receives data considered as "personal data"
2020

@@ -37,4 +37,4 @@ The following data is considered as "personal data":
3737

3838
All those parameters are considered as personal data, because you could point at the tracked person when sitting in the same room (even when this is probably never the case and totally unrealistic).
3939

40-
`siteReferrer` and visit duration (calculated using the creation and update time of a record) is not considered as personal data as you won't be able to identifier a user with this piece of information. Even when you are in the same room you would need access to the browsing history of the user.
40+
`siteReferrer` and visit duration (calculated using the creation and update time of a record) is not considered as personal data as you won't be able to identifier a user with this piece of information. Even when you are in the same room you would need access to the browsing history of the user.

Diff for: docs/Get started.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,13 @@ Ackee now runs on port `3000` and is only accessible from you local network. It'
164164

165165
### 1. Deploy to Heroku
166166

167-
Simply deploy to Heroku by clicking this button:
167+
Deploy to Heroku by clicking this button:
168168

169169
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/electerious/Ackee)
170170

171171
### 2. Configure Ackee
172172

173-
- You need to have a MongoDB instance running, either hosting it yourself or using a (paid) add-on like [ObjectRocket MongoDB](https://elements.heroku.com/addons/ormongo). This is as simple as typing `heroku addons:create ormongo:2-wt --app <YOUR_APP_NAME>` using the CLI, or using the web dashboard; more details at the [official documentation](https://devcenter.heroku.com/articles/managing-add-ons). You'll need to provide connection details to Ackee dyno, either from the web dashboard or via command line, e.g. `heroku config:add "ACKEE_MONGODB=mongodb://<host>:<port>/<db>"`
174-
173+
- You need to have a MongoDB instance running, either hosting it yourself, using [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) or by using a (paid) add-on like [ObjectRocket MongoDB](https://elements.heroku.com/addons/ormongo). This is as simple as typing `heroku addons:create ormongo:2-wt --app <YOUR_APP_NAME>` using the CLI, or using the web dashboard; more details at the [official documentation](https://devcenter.heroku.com/articles/managing-add-ons). You'll need to provide connection details to Ackee dyno, either from the web dashboard or via command line, e.g. `heroku config:add "ACKEE_MONGODB=mongodb://<host>:<port>/<db>"`
175174
- Ensure that you're using the correct CORS headers by setting [`ACKEE_ALLOW_ORIGIN`](CORS%20headers.md#heroku-or-platforms-as-a-service-configuration).
176175

177176
### 3. Updating Ackee

Diff for: package.json

100755100644
+22-22
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "ackee",
33
"private": true,
4-
"version": "2.0.1",
4+
"version": "2.0.2",
55
"authors": [
66
"Tobias Reich <[email protected]>"
77
],
@@ -29,43 +29,39 @@
2929
"test": "nyc ava",
3030
"lint": "eslint '{src,test}/**/*.js'"
3131
},
32-
"eslintConfig": {
33-
"root": true,
34-
"extends": "@electerious/eslint-config"
35-
},
3632
"dependencies": {
37-
"@babel/core": "^7.11.1",
38-
"@babel/preset-env": "^7.11.0",
39-
"ackee-tracker": "^4.0.0",
40-
"apollo-server-micro": "^2.16.1",
33+
"@babel/core": "^7.11.6",
34+
"@babel/preset-env": "^7.11.5",
35+
"ackee-tracker": "^4.0.1",
36+
"apollo-server-micro": "^2.17.0",
4137
"classnames": "^2.2.6",
42-
"date-fns": "^2.15.0",
38+
"date-fns": "^2.16.1",
4339
"date-fns-tz": "^1.0.10",
4440
"debounce-promise": "^3.1.2",
4541
"dotenv": "^8.2.0",
4642
"formbase": "^12.0.1",
4743
"graphql": "^15.3.0",
48-
"graphql-scalars": "^1.2.6",
49-
"graphql-tools": "^6.0.18",
44+
"graphql-scalars": "^1.2.7",
45+
"graphql-tools": "^6.2.2",
5046
"human-number": "^1.0.5",
51-
"immer": "^7.0.7",
47+
"immer": "^7.0.9",
5248
"is-url": "^1.2.4",
5349
"micro": "^9.3.4",
5450
"microrouter": "^3.1.3",
55-
"mongoose": "^5.10.0",
56-
"node-fetch": "^2.6.0",
51+
"mongoose": "^5.10.5",
52+
"node-fetch": "^2.6.1",
5753
"node-schedule": "^1.3.2",
5854
"normalize-url": "^5.0.0",
5955
"normalize.css": "^8.0.0",
6056
"permit": "^0.2.4",
6157
"prop-types": "^15.7.2",
6258
"react": "^16.13.1",
6359
"react-dom": "^16.13.1",
64-
"react-error-boundary": "^2.3.1",
60+
"react-error-boundary": "^3.0.1",
6561
"react-fast-compare": "^3.2.0",
66-
"react-hotkeys-hook": "^2.2.2",
62+
"react-hotkeys-hook": "^2.3.1",
6763
"react-redux": "^7.2.1",
68-
"react-use": "^15.3.3",
64+
"react-use": "^15.3.4",
6965
"redux": "^4.0.5",
7066
"redux-devtools-extension": "^2.13.8",
7167
"redux-thunk": "^2.3.0",
@@ -79,13 +75,13 @@
7975
},
8076
"devDependencies": {
8177
"@electerious/eslint-config": "^1.3.4",
82-
"ava": "3.11.1",
78+
"ava": "3.12.1",
8379
"coveralls": "^3.1.0",
84-
"eslint": "^7.7.0",
80+
"eslint": "^7.9.0",
8581
"eslint-plugin-import": "^2.22.0",
8682
"eslint-plugin-react": "^7.20.6",
87-
"eslint-plugin-react-hooks": "^4.0.8",
88-
"eslint-plugin-react-native": "^3.8.1",
83+
"eslint-plugin-react-hooks": "^4.1.2",
84+
"eslint-plugin-react-native": "^3.9.1",
8985
"mocked-env": "^1.3.2",
9086
"nodemon": "^2.0.4",
9187
"nyc": "^15.1.0",
@@ -98,6 +94,10 @@
9894
"ACKEE_TRACKER": "custom name"
9995
}
10096
},
97+
"eslintConfig": {
98+
"root": true,
99+
"extends": "@electerious/eslint-config"
100+
},
101101
"nodemonConfig": {
102102
"ext": "js,json,graphql",
103103
"ignore": [

Diff for: src/database/browsers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateNewFields = require('../aggregations/aggregateNewFields')
66
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')

Diff for: src/database/devices.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateNewFields = require('../aggregations/aggregateNewFields')
66
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')

Diff for: src/database/domains.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Domain = require('../schemas/Domain')
3+
const Domain = require('../models/Domain')
44
const sortByProp = require('../utils/sortByProp')
55

66
const response = (entry) => ({

Diff for: src/database/durations.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const { utcToZonedTime } = require('date-fns-tz')
44

5-
const Record = require('../schemas/Record')
5+
const Record = require('../models/Record')
66
const aggregateDurations = require('../aggregations/aggregateDurations')
77
const intervals = require('../constants/intervals')
88
const createArray = require('../utils/createArray')

Diff for: src/database/facts.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateActiveVisitors = require('../aggregations/aggregateActiveVisitors')
55

66
const getActiveVisitors = async (ids, dateDetails) => {

Diff for: src/database/languages.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateNewFields = require('../aggregations/aggregateNewFields')
66
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')

Diff for: src/database/pages.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateNewFields = require('../aggregations/aggregateNewFields')
66
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')

Diff for: src/database/records.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44

55
const response = (entry) => ({
66
id: entry.id,

Diff for: src/database/referrers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
66
const aggregateNewFields = require('../aggregations/aggregateNewFields')

Diff for: src/database/sizes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateNewFields = require('../aggregations/aggregateNewFields')
66
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')

Diff for: src/database/systems.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Record = require('../schemas/Record')
3+
const Record = require('../models/Record')
44
const aggregateTopFields = require('../aggregations/aggregateTopFields')
55
const aggregateNewFields = require('../aggregations/aggregateNewFields')
66
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')

Diff for: src/database/tokens.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Token = require('../schemas/Token')
3+
const Token = require('../models/Token')
44

55
const response = (entry) => ({
66
id: entry.id,

Diff for: src/database/views.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const { utcToZonedTime } = require('date-fns-tz')
44

5-
const Record = require('../schemas/Record')
5+
const Record = require('../models/Record')
66
const aggregateViews = require('../aggregations/aggregateViews')
77
const constants = require('../constants/views')
88
const intervals = require('../constants/intervals')
File renamed without changes.
File renamed without changes.
File renamed without changes.

Diff for: src/resolvers/index.js

+8-22
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,11 @@
11
'use strict'
22

3-
const tokens = require('./tokens')
4-
const records = require('./records')
5-
const domains = require('./domains')
6-
const facts = require('./facts')
7-
const statistics = require('./statistics')
3+
const { mergeResolvers } = require('graphql-tools')
84

9-
module.exports = {
10-
...tokens,
11-
...records,
12-
...domains,
13-
...facts,
14-
...statistics,
15-
Query: {
16-
...domains.Query,
17-
...facts.Query,
18-
...statistics.Query
19-
},
20-
Mutation: {
21-
...tokens.Mutation,
22-
...records.Mutation,
23-
...domains.Mutation
24-
}
25-
}
5+
module.exports = mergeResolvers([
6+
require('./tokens'),
7+
require('./records'),
8+
require('./domains'),
9+
require('./facts'),
10+
require('./statistics')
11+
])

Diff for: src/server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const handleMicroError = (err, res) => {
2020

2121
// This part is for micro errors and errors outside of GraphQL.
2222
// Most errors won't be caught here, but some error can still
23-
// happen outside of GraphQL. In this case wer distinguish
23+
// happen outside of GraphQL. In this case we distinguish
2424
// between unknown errors and known errors. Known errors are
2525
// created with the createError function while unknown errors
2626
// are simply errors thrown somewhere in the application.

0 commit comments

Comments
 (0)