Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

strategy:
matrix:
node-version: [20.x, 21.x]
node-version: [22.x, 24.x]

steps:
- uses: actions/checkout@v4
Expand All @@ -29,8 +29,11 @@ jobs:
- name: Recreate JSON Schemas
run: yarn create-schemas && yarn build # an incremental rebuild is neccessary to use the updated schema
- name: Test
run: yarn test:unit
- uses: codecov/codecov-action@v2
run: yarn test:unit --reporter=junit --outputFile=test-report.junit.xml

- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-version-bump.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:

strategy:
matrix:
node-version: [20.x]
node-version: [22.x]

steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

strategy:
matrix:
node-version: [20.x, 22.x]
node-version: [22.x, 24.x]

steps:
- uses: actions/checkout@v4
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,6 @@ testresults
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
!.yarn/versions

test-results
5 changes: 0 additions & 5 deletions .yarn/versions/2d4efe43.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .yarn/versions/544e081e.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .yarn/versions/bf3e3cf4.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .yarn/versions/cee96777.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .yarn/versions/e54633dc.yml

This file was deleted.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# boilerplate
# obsidian-core

Boilerplate app with common type api definitions, a furystack-based backend service and a Shades-based single page application.
Obsidian Core is an advanced smart home management system built with Furystack. It provides a robust backend service and a user-friendly frontend interface to control and monitor your smart home devices.

# Usage

Expand Down
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pool:
steps:
- task: NodeTool@0
inputs:
versionSpec: '20.x'
versionSpec: '22.x'
displayName: 'Install Node.js'
- script: yarn install
displayName: 'Yarn install'
Expand Down
206 changes: 206 additions & 0 deletions common/schemas/authentication-api.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/AuthenticationApi",
"definitions": {
"AuthenticationApi": {
"type": "object",
"properties": {
"GET": {
"type": "object",
"properties": {
"/isAuthenticated": {
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"isAuthenticated": {
"type": "boolean"
}
},
"required": ["isAuthenticated"],
"additionalProperties": false
}
},
"required": ["result"],
"additionalProperties": false
},
"/currentUser": {
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/User"
}
},
"required": ["result"],
"additionalProperties": false
}
},
"required": ["/isAuthenticated", "/currentUser"],
"additionalProperties": false
},
"POST": {
"type": "object",
"properties": {
"/login": {
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/User"
},
"body": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
}
},
"required": ["username", "password"],
"additionalProperties": false
}
},
"required": ["result", "body"],
"additionalProperties": false
},
"/logout": {
"type": "object",
"properties": {
"result": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"required": ["/login", "/logout"],
"additionalProperties": false
},
"PATCH": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"PUT": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"DELETE": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"HEAD": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"CONNECT": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"TRACE": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
},
"OPTIONS": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"result": {},
"url": {},
"query": {},
"body": {},
"headers": {}
},
"required": ["result"],
"additionalProperties": false
}
}
},
"required": ["GET", "POST"],
"additionalProperties": false
},
"User": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["username", "roles"],
"additionalProperties": false
}
}
}
Loading
Loading