Cards
The Card:
Cards are the primary building blocks for dashboards.
They are created from queries and can be configured to display data in a variety of ways.
Card permissions:
A card can be created and shared between multiple dashboards. However, the card will only be able to query data that the user has access to.
Only the user that created the card can edit or delete the card.
Card types:
Count: A single number. -- total users, the number of errors, etc.
List: List of items. -- the most recent errors, the most recent users, etc.
Bar: Bar chart. -- number logs over time, the number of users over time, etc.
Line: Line chart. -- the number of logs over time, the number of users over time, etc.
Pie: Pie chart. -- the number of logs by type, the number of logs by origin, etc.
Card data:
For example:
If a card is configured to display a certain number of error logs, then the card will display the number of errors logs that the user has access to.
So a user that has access to all the orgs projects, will see the total number of errors logs across all projects.
But a user that only has access to a single project, will only see the number of errors logs for that project.
Note:
Get all
Description
Fetch all cards that the user has access to.
Parameters
headers
Authorization
string
Required
Description:
Bearer token - JWT
Example:
"Bearer <token>"
Responses
200
OK
Type:
Array of Card objects
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
404
Not Found
Type:
Error object
Example:
1 2 3 4 5
{ name: "Entity not found", message: "Entity not found", status: 404 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
get
/card/
Request
1 2 3 4
curl https://logharvestor.com/api/v1/card/ \ -X GET \ -H 'Authorization: Bearer <token>' \
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Get by id
Description
Find the card that matches the {cardId} query parameter.
Parameters
headers
Authorization
string
Required
Description:
Bearer token - JWT
Example:
"Bearer <token>"
params
cardId
string
Required
Description:
Card identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
OK
Type:
Card object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
404
Not Found
Type:
Error object
Example:
1 2 3 4 5
{ name: "Entity not found", message: "Entity not found", status: 404 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
get
/card/:cardId
Request
1 2 3 4
curl https://logharvestor.com/api/v1/card/:cardId \ -X GET \ -H 'Authorization: Bearer <token>' \
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Get data
Description
Retrieve the query data that the card is configured to display.
Parameters
headers
Authorization
string
Required
Description:
Bearer token - JWT
Example:
"Bearer <token>"
params
cardId
string
Required
Description:
Card identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
Count data
Type:
CardDataCount object
Example:
1 2 3
{ total: 20053 }
200
List data
Type:
CardDataList object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ data: [ { _id: "0f9c0b0b4f0c6b0017f0e3b1", typ: "info", msg: "log message 1" }, { _id: "0f9c0b0b4f0c6b0017f0e3b2", typ: "info", msg: "log message 2" }, { _id: "0f9c0b0b4f0c6b0017f0e3b3", typ: "info", msg: "log message 3" }, { _id: "0f9c0b0b4f0c6b0017f0e3b4", typ: "info", msg: "log message 4" } ] }
200
Bar data
Type:
CardDataBar object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
{ data: [ { _id: "error", data: [ { _id: "168910405000", count: 578 }, { _id: "168910415000", count: 253 }, { _id: "168910425000", count: 0 }, { _id: "168910435000", count: 120 }, { _id: "168910445000", count: 0 } ] }, { _id: "info", data: [ { _id: "168910405000", count: 1202 }, { _id: "168910415000", count: 1353 }, { _id: "168910425000", count: 5539 }, { _id: "168910435000", count: 4789 }, { _id: "168910445000", count: 4766 } ] } ] }
200
Line data
Type:
CardDataLine object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
{ data: [ { _id: "error", data: [ { _id: "168910405000", count: 578 }, { _id: "168910415000", count: 253 }, { _id: "168910425000", count: 0 }, { _id: "168910435000", count: 120 }, { _id: "168910445000", count: 0 } ] }, { _id: "info", data: [ { _id: "168910405000", count: 1202 }, { _id: "168910415000", count: 1353 }, { _id: "168910425000", count: 5539 }, { _id: "168910435000", count: 4789 }, { _id: "168910445000", count: 4766 } ] } ] }
200
Pie data
Type:
CardDataPie object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{ data: [ { _id: "error", count: 20053 }, { _id: "info", count: 1220028 }, { _id: "warning", count: 6220 } ] }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
404
Not Found
Type:
Error object
Example:
1 2 3 4 5
{ name: "Entity not found", message: "Entity not found", status: 404 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
get
/card/:cardId/data
Request
1 2 3 4
curl https://logharvestor.com/api/v1/card/:cardId/data \ -X GET \ -H 'Authorization: Bearer <token>' \
Response
1 2 3
{ total: 20053 }
Create
Description
Create a new card.
Parameters
headers
Authorization
string
Required
Description:
Bearer token - JWT
Example:
"Bearer <token>"
body
name
string
Required
Description:
Card name
Example:
"Error line card"
notes
string
Description:
Notes relevant to card
Example:
"This card is for graphing errors over time"
type
string
Required
Description:
Card type
Options:
line | bar | pie | list | count
Example:
"line"
title
string
Required
Description:
Card title
Example:
"Errors over time"
topLabel
string
Description:
Card top label
Example:
"Total"
query
object
Required
Description:
Card query
Example:
Query
ownerEntityType
string
Required
Description:
Card owner entity type
Options:
Org | Project | User
Example:
"Project"
ownerEntity
string
Required
Description:
Card owner entity identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
OK
Type:
Card object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
post
/card/
Request
1 2 3 4 5
curl https://logharvestor.com/api/v1/card/ \ -X POST \ -H 'Authorization: Bearer <token>' \ -H 'Content-Type: application/json' \ --data-raw '{"name":"\"Error line card\"","notes":"\"This card is for graphing errors over time\"","type":"\"line\"","title":"\"Errors over time\"","topLabel":"\"Total\"","ownerEntityType":"\"Project\"","ownerEntity":"\"0f9c0b0b4f0c6b0017f0e3b1\""}'
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Update
Description
Update a card.
Parameters
headers
Authorization
string
Required
Description:
Bearer token - JWT
Example:
"Bearer <token>"
body
name
string
Required
Description:
Card name
Example:
"Error line card"
notes
string
Description:
Notes relevant to card
Example:
"This card is for graphing errors over time"
type
string
Required
Description:
Card type
Options:
line | bar | pie | list | count
Example:
"line"
title
string
Required
Description:
Card title
Example:
"Errors over time"
topLabel
string
Description:
Card top label
Example:
"Total"
query
object
Required
Description:
Card query
Example:
Query
ownerEntityType
string
Required
Description:
Card owner entity type
Options:
Org | Project | User
Example:
"Project"
ownerEntity
string
Required
Description:
Card owner entity identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
OK
Type:
Card object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
put
/card/:cardId
Request
1 2 3 4 5
curl https://logharvestor.com/api/v1/card/:cardId \ -X PUT \ -H 'Authorization: Bearer <token>' \ -H 'Content-Type: application/json' \ --data-raw '{"name":"\"Error line card\"","notes":"\"This card is for graphing errors over time\"","type":"\"line\"","title":"\"Errors over time\"","topLabel":"\"Total\"","ownerEntityType":"\"Project\"","ownerEntity":"\"0f9c0b0b4f0c6b0017f0e3b1\""}'
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Delete
Description
Delete a card.
⚠️ WARNING ⚠️
Parameters
headers
Authorization
string
Required
Description:
Bearer token - JWT
Example:
"Bearer <token>"
params
cardId
string
Required
Description:
Card identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
OK
Description:
Returns a snapshot of the card before it was deleted.
Type:
Card object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
404
Not Found
Type:
Error object
Example:
1 2 3 4 5
{ name: "Entity not found", message: "Entity not found", status: 404 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
delete
/card/:cardId
Request
1 2 3 4
curl https://logharvestor.com/api/v1/card/:cardId \ -X DELETE \ -H 'Authorization: Bearer <token>' \
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Archive
Description
Archive a card
Parameters
params
cardId
string
Required
Description:
Card identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
OK
Description:
Returns the archived card.
Type:
Card object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
404
Not Found
Type:
Error object
Example:
1 2 3 4 5
{ name: "Entity not found", message: "Entity not found", status: 404 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
post
/card/:cardId/archive
Request
1 2 3 4
curl https://logharvestor.com/api/v1/card/:cardId/archive \ -X POST \ \
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Unarchive
Description
Unarchive a card.
Parameters
params
cardId
string
Required
Description:
Card identifier
Example:
"0f9c0b0b4f0c6b0017f0e3b1"
Responses
200
OK
Description:
Returns the updated card.
Type:
Card object
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
401
Unauthorized
Type:
Error object
Example:
1 2 3 4 5
{ name: "Invalid Role", message: "You do not have the required role to access this resource", status: 401 }
404
Not Found
Type:
Error object
Example:
1 2 3 4 5
{ name: "Entity not found", message: "Entity not found", status: 404 }
500
Internal Server Error
Type:
Error object
Example:
1 2 3 4 5
{ name: "Internal Server Error", message: "Internal Server Error", status: 500 }
post
/card/:cardId/unarchive
Request
1 2 3 4
curl https://logharvestor.com/api/v1/card/:cardId/unarchive \ -X POST \ \
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ _id: "0f9c0b0b4f0c6b0017f0e3b1", name: "Error line card", notes: "This card is for graphing errors over time", type: "line", title: "Errors over time", topLabel: "Total", query: { name: "Logs with type of error", description: "Returns a list of logs with a type of error", mappedDescription: "Logs where 'typ' is 'error'", entity: "Log", groupBy: "typ", rules: { id: "0f9c0b0b4f0c6b0017f0e3b1", field: "typ", operator: "EQUALS", comparator: "error", combinator: "AND" } }, ownerEntityType: "Project", ownerEntity: "0f9c0b0b4f0c6b0017f0e3b1" }
Resources
Docs
Pricing
Roadmap
About
Integrations
Copyright © Log Harvestor 2023 • Terms • Privacy