Skip to content

Commit

Permalink
Merge branch 'release/2.0.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
electerious committed Sep 20, 2020
2 parents 3af5975 + 21e91c4 commit 4671c95
Show file tree
Hide file tree
Showing 39 changed files with 1,420 additions and 1,119 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.

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).

## [2.0.2] - 2020-09-20

### Added

- [vuepress-plugin-ackee](https://github.com/spekulatius/vuepress-plugin-ackee)
- [gridsome-plugin-ackee](https://github.com/DenzoNL/gridsome-plugin-ackee)

### Changed

- More relevant data on the dashboard: Ackee now shows the top data of the last 24 hours instead of last 7 days
- Heroku installation docs (#154, thanks @Go-Merk and @aleccool213)

## [2.0.1] - 2020-08-16

This updates improves the look of the README and adds some missing pieces of documentation.
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,17 @@ I am working hard on continuously developing and maintaining Ackee. Please consi
### Related

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

### Links

- [Follow us on Twitter](https://twitter.com/getackee)
- [Vote for Ackee on ProductHunt](https://www.producthunt.com/posts/ackee)
- [Vote for Ackee on ProductHunt](https://www.producthunt.com/posts/ackee)
25 changes: 18 additions & 7 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,22 @@
"ACKEE_PASSWORD": {
"description": "Password which will be used to log in to Ackee",
"required": true
},
"ACKEE_MONGODB": {
"description": "MongoDB URI which will be used to connect a database to Ackee",
"required": true
},
"ACKEE_ALLOW_ORIGIN": {
"description": "Tracked domains which will be used on Ackee (CORS headers)",
"required": true
},
"ACKEE_TTL": {
"description": "Specifies how long an Ackee TTL token is valid (Default: 3600000)",
"required": false
},
"ACKEE_TRACKER": {
"description": "Specifies a custom name for the tracking script (Default: tracker.js)",
"required": false
}
},
"addons": [
{
"plan": "mongolab"
}
]
}
}
}
4 changes: 2 additions & 2 deletions docs/Anonymization.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Ackee also removes personal data from previous records when a new record with an

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

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

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

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).

`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.
`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.
5 changes: 2 additions & 3 deletions docs/Get started.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,14 +164,13 @@ Ackee now runs on port `3000` and is only accessible from you local network. It'

### 1. Deploy to Heroku

Simply deploy to Heroku by clicking this button:
Deploy to Heroku by clicking this button:

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

### 2. Configure Ackee

- 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>"`

- 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>"`
- Ensure that you're using the correct CORS headers by setting [`ACKEE_ALLOW_ORIGIN`](CORS%20headers.md#heroku-or-platforms-as-a-service-configuration).

### 3. Updating Ackee
Expand Down
44 changes: 22 additions & 22 deletions package.json
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ackee",
"private": true,
"version": "2.0.1",
"version": "2.0.2",
"authors": [
"Tobias Reich <[email protected]>"
],
Expand Down Expand Up @@ -29,43 +29,39 @@
"test": "nyc ava",
"lint": "eslint '{src,test}/**/*.js'"
},
"eslintConfig": {
"root": true,
"extends": "@electerious/eslint-config"
},
"dependencies": {
"@babel/core": "^7.11.1",
"@babel/preset-env": "^7.11.0",
"ackee-tracker": "^4.0.0",
"apollo-server-micro": "^2.16.1",
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.11.5",
"ackee-tracker": "^4.0.1",
"apollo-server-micro": "^2.17.0",
"classnames": "^2.2.6",
"date-fns": "^2.15.0",
"date-fns": "^2.16.1",
"date-fns-tz": "^1.0.10",
"debounce-promise": "^3.1.2",
"dotenv": "^8.2.0",
"formbase": "^12.0.1",
"graphql": "^15.3.0",
"graphql-scalars": "^1.2.6",
"graphql-tools": "^6.0.18",
"graphql-scalars": "^1.2.7",
"graphql-tools": "^6.2.2",
"human-number": "^1.0.5",
"immer": "^7.0.7",
"immer": "^7.0.9",
"is-url": "^1.2.4",
"micro": "^9.3.4",
"microrouter": "^3.1.3",
"mongoose": "^5.10.0",
"node-fetch": "^2.6.0",
"mongoose": "^5.10.5",
"node-fetch": "^2.6.1",
"node-schedule": "^1.3.2",
"normalize-url": "^5.0.0",
"normalize.css": "^8.0.0",
"permit": "^0.2.4",
"prop-types": "^15.7.2",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-error-boundary": "^2.3.1",
"react-error-boundary": "^3.0.1",
"react-fast-compare": "^3.2.0",
"react-hotkeys-hook": "^2.2.2",
"react-hotkeys-hook": "^2.3.1",
"react-redux": "^7.2.1",
"react-use": "^15.3.3",
"react-use": "^15.3.4",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
"redux-thunk": "^2.3.0",
Expand All @@ -79,13 +75,13 @@
},
"devDependencies": {
"@electerious/eslint-config": "^1.3.4",
"ava": "3.11.1",
"ava": "3.12.1",
"coveralls": "^3.1.0",
"eslint": "^7.7.0",
"eslint": "^7.9.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-react": "^7.20.6",
"eslint-plugin-react-hooks": "^4.0.8",
"eslint-plugin-react-native": "^3.8.1",
"eslint-plugin-react-hooks": "^4.1.2",
"eslint-plugin-react-native": "^3.9.1",
"mocked-env": "^1.3.2",
"nodemon": "^2.0.4",
"nyc": "^15.1.0",
Expand All @@ -98,6 +94,10 @@
"ACKEE_TRACKER": "custom name"
}
},
"eslintConfig": {
"root": true,
"extends": "@electerious/eslint-config"
},
"nodemonConfig": {
"ext": "js,json,graphql",
"ignore": [
Expand Down
2 changes: 1 addition & 1 deletion src/database/browsers.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/devices.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/domains.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Domain = require('../schemas/Domain')
const Domain = require('../models/Domain')
const sortByProp = require('../utils/sortByProp')

const response = (entry) => ({
Expand Down
2 changes: 1 addition & 1 deletion src/database/durations.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

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

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateDurations = require('../aggregations/aggregateDurations')
const intervals = require('../constants/intervals')
const createArray = require('../utils/createArray')
Expand Down
2 changes: 1 addition & 1 deletion src/database/facts.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateActiveVisitors = require('../aggregations/aggregateActiveVisitors')

const getActiveVisitors = async (ids, dateDetails) => {
Expand Down
2 changes: 1 addition & 1 deletion src/database/languages.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/pages.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/records.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')

const response = (entry) => ({
id: entry.id,
Expand Down
2 changes: 1 addition & 1 deletion src/database/referrers.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/sizes.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/systems.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateTopFields = require('../aggregations/aggregateTopFields')
const aggregateNewFields = require('../aggregations/aggregateNewFields')
const aggregateRecentFields = require('../aggregations/aggregateRecentFields')
Expand Down
2 changes: 1 addition & 1 deletion src/database/tokens.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const Token = require('../schemas/Token')
const Token = require('../models/Token')

const response = (entry) => ({
id: entry.id,
Expand Down
2 changes: 1 addition & 1 deletion src/database/views.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

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

const Record = require('../schemas/Record')
const Record = require('../models/Record')
const aggregateViews = require('../aggregations/aggregateViews')
const constants = require('../constants/views')
const intervals = require('../constants/intervals')
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
30 changes: 8 additions & 22 deletions src/resolvers/index.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,11 @@
'use strict'

const tokens = require('./tokens')
const records = require('./records')
const domains = require('./domains')
const facts = require('./facts')
const statistics = require('./statistics')
const { mergeResolvers } = require('graphql-tools')

module.exports = {
...tokens,
...records,
...domains,
...facts,
...statistics,
Query: {
...domains.Query,
...facts.Query,
...statistics.Query
},
Mutation: {
...tokens.Mutation,
...records.Mutation,
...domains.Mutation
}
}
module.exports = mergeResolvers([
require('./tokens'),
require('./records'),
require('./domains'),
require('./facts'),
require('./statistics')
])
2 changes: 1 addition & 1 deletion src/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const handleMicroError = (err, res) => {

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

0 comments on commit 4671c95

Please sign in to comment.