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
11 changes: 8 additions & 3 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v4

- uses: Ortus-Solutions/commandbox-action@v1.0.2
with:
cmd: run-script format:check
- name: Setup CommandBox CLI
uses: Ortus-Solutions/setup-commandbox@v2.0.1

- name: Install pinned formatter
run: box install commandbox-cfformat@0.21.0

- name: Check formatting
run: box run-script format:check
24 changes: 23 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,22 @@ jobs:
box package set dependencies.coldbox=${{ matrix.coldboxVersion }}
box install

- name: Setup Node for the envelope receiver
uses: actions/setup-node@v4
with:
node-version: 22

- name: Start local envelope receiver
run: |
mkdir -p test-harness/tests/results
node test-harness/support/receiver.mjs > test-harness/tests/results/receiver.log 2>&1 &
echo $! > test-harness/tests/results/receiver.pid
curl --fail --retry 10 --retry-connrefused --retry-delay 1 http://127.0.0.1:60320/state

- name: Start ${{ matrix.cfengine }} Server
run: |
box server start serverConfigFile="server-${{ matrix.cfengine }}.json" --noSaveSettings --debug
curl http://127.0.0.1:60299
curl --fail-with-body http://127.0.0.1:60299/health.cfm

- name: Run Tests
run: |
Expand All @@ -101,6 +113,16 @@ jobs:
junit_files: test-harness/tests/results/**/*.xml
check_name: "${{ matrix.cfengine }} ColdBox ${{ matrix.coldboxVersion }} Test Results"

- name: Stop local envelope receiver
if: always()
run: |
if [ -f test-harness/tests/results/receiver.pid ]; then
receiver_pid="$(cat test-harness/tests/results/receiver.pid)"
if kill -0 "$receiver_pid" 2>/dev/null; then
kill "$receiver_pid"
fi
fi

- name: Upload Test Results to Artifacts
if: always()
uses: actions/upload-artifact@v4
Expand Down
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,15 @@ test-harness/.env
# Local server configs (test artifacts)
server-sentry-*.json
test-harness/server-sentry-*.json

/modules
/test-harness/coldbox
/test-harness/testbox
/test-harness/sentry
/browser/node_modules/

/test-harness/provider-feedback.html
/test-harness/tests/provider-proof.cfm
/test-harness/lucee-local-cache/

/test-harness/tests/provider-feedback-native.cfm
33 changes: 33 additions & 0 deletions ModuleConfig.cfc
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,15 @@ component {
}
}

settings.append(
createObject( "component", "#moduleMapping#.models.telemetry.Observability" ).defaults(),
false
);
interceptors = [
{ class : "#moduleMapping#.interceptors.QueueObservability" },
{ class : "#moduleMapping#.interceptors.Observability" },
{ class : "#moduleMapping#.interceptors.QueryObservability" }
];
interceptorSettings = { customInterceptionPoints : [ "onSentryEventCapture" ] };
}

Expand All @@ -105,9 +114,30 @@ component {
*/
function onLoad(){
// Incorporate defaults into settings
if ( settings.queryAdapter == "auto" || settings.queryAdapter == "boxlang" ) {
wirebox
.getInstance( "SentryService@sentry" )
.getObservability()
.configureQueryInstrumentation( getApplicationMetadata().name );
}
binder.mapDSL( "sentryCache", "#moduleMapping#.models.dsl.CacheDSL" );
wirebox.registerDSL( "sentryCache", "#moduleMapping#.models.dsl.CacheDSL" );
settings.scrubFields.addAll( SCRUB_FIELDS );
settings.scrubHeaders.addAll( SCRUB_HEADERS );

if ( settings.enableStructuredLogBoxAppender && settings.enableLogs ) {
logBox.registerAppender(
name = "sentry_structured",
class = "#moduleMapping#.models.StructuredLogAppender",
properties = { "messageMode" : settings.logMessageMode },
levelMin = 0,
levelMax = 3
);
logBox
.getRootLogger()
.addAppender( logBox.getAppendersMap( "sentry_structured" )[ "sentry_structured" ] );
}

// Load the LogBox Appenders
if ( settings.enableLogBoxAppender ) {
loadAppenders();
Expand All @@ -118,6 +148,9 @@ component {
* Fired when the module is unregistered and unloaded
*/
function onUnload(){
if ( wirebox.containsInstance( "SentryService@sentry" ) ) {
wirebox.getInstance( "SentryService@sentry" ).shutdown();
}
}

/**
Expand Down
88 changes: 46 additions & 42 deletions box.json
Original file line number Diff line number Diff line change
@@ -1,55 +1,59 @@
{
"name":"Sentry",
"author":"Ortus Solutions <info@ortussolutions.com>",
"version":"2.1.7",
"slug":"sentry",
"type":"modules",
"homepage":"https://github.com/coldbox-modules/sentry",
"documentation":"https://github.com/coldbox-modules/sentry",
"repository":{
"type":"git",
"url":"https://github.com/coldbox-modules/sentry"
"name": "Sentry",
"author": "Ortus Solutions <info@ortussolutions.com>",
"version": "3.0.0-alpha.1",
"slug": "sentry",
"type": "modules",
"homepage": "https://github.com/coldbox-modules/sentry",
"documentation": "https://github.com/coldbox-modules/sentry",
"repository": {
"type": "git",
"url": "https://github.com/coldbox-modules/sentry"
},
"bugs":"https://github.com/coldbox-modules/sentry/issues",
"shortDescription":"A module to log messages and send bug reports to Sentry",
"license":[
"bugs": "https://github.com/coldbox-modules/sentry/issues",
"shortDescription": "A module to log messages and send bug reports to Sentry",
"license": [
{
"type":"Apache2",
"url":"http://www.apache.org/licenses/LICENSE-2.0.html"
"type": "Apache2",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
],
"contributors":[],
"dependencies":{
"funclinenums":"^1.1.0"
"contributors": [],
"dependencies": {
"funclinenums": "^1.1.0"
},
"devDependencies":{},
"installPaths":{
"funclinenums":"modules/funclinenums/"
"devDependencies": {},
"installPaths": {
"funclinenums": "modules/funclinenums/"
},
"ignore":[
"ignore": [
"**/.*",
"test-harness",
"*.md"
"*.md",
"browser/node_modules",
"browser/tests",
"browser/*config*",
"browser/build.mjs"
],
"scripts":{
"build:module":"task run taskFile=build/Build.cfc :projectName=`package show slug` :version=`package show version`",
"build:docs":"task run taskFile=build/Build.cfc target=docs :projectName=`package show slug` :version=`package show version`",
"install:dependencies":"install --force && cd test-harness && install --force",
"release":"recipe build/release.boxr",
"format":"cfformat run helpers,models,interceptors,handlers,test-harness/tests/,ModuleConfig.cfc --overwrite",
"format:watch":"cfformat watch helpers,models,interceptors,handlers,test-harness/tests/,ModuleConfig.cfc ./.cfformat.json",
"format:check":"cfformat check helpers,models,interceptors,handlers,test-harness/tests/,ModuleConfig.cfc ./.cfformat.json",
"start:lucee":"server start serverConfigFile=server-lucee@5.json",
"start:2018":"server start serverConfigFile=server-adobe@2018.json",
"start:2021":"server start serverConfigFile=server-adobe@2021.json",
"stop:lucee":"server stop serverConfigFile=server-lucee@5.json",
"stop:2018":"server stop serverConfigFile=server-adobe@2018.json",
"stop:2021":"server stop serverConfigFile=server-adobe@2021.json",
"logs:lucee":"server log serverConfigFile=server-lucee@5.json --follow",
"logs:2018":"server log serverConfigFile=server-adobe@2018.json --follow",
"logs:2021":"server log serverConfigFile=server-adobe@2021.json --follow"
"scripts": {
"build:module": "task run taskFile=build/Build.cfc :projectName=`package show slug` :version=`package show version`",
"build:docs": "task run taskFile=build/Build.cfc target=docs :projectName=`package show slug` :version=`package show version`",
"install:dependencies": "install --force && cd test-harness && install --force",
"release": "recipe build/release.boxr",
"format": "cfformat run helpers,models,interceptors,handlers,test-harness/tests/,test-harness/Application.cfc,ModuleConfig.cfc --overwrite",
"format:watch": "cfformat watch helpers,models,interceptors,handlers,test-harness/tests/,test-harness/Application.cfc,ModuleConfig.cfc ./.cfformat.json",
"format:check": "cfformat check helpers,models,interceptors,handlers,test-harness/tests/,test-harness/Application.cfc,ModuleConfig.cfc ./.cfformat.json",
"start:lucee": "server start serverConfigFile=server-lucee@5.json",
"start:2018": "server start serverConfigFile=server-adobe@2018.json",
"start:2021": "server start serverConfigFile=server-adobe@2021.json",
"stop:lucee": "server stop serverConfigFile=server-lucee@5.json",
"stop:2018": "server stop serverConfigFile=server-adobe@2018.json",
"stop:2021": "server stop serverConfigFile=server-adobe@2021.json",
"logs:lucee": "server log serverConfigFile=server-lucee@5.json --follow",
"logs:2018": "server log serverConfigFile=server-adobe@2018.json --follow",
"logs:2021": "server log serverConfigFile=server-adobe@2021.json --follow"
},
"testbox":{
"runner":"http://localhost:60299/tests/runner.cfm"
"testbox": {
"runner": "http://localhost:60299/tests/runner.cfm"
}
}
5 changes: 5 additions & 0 deletions browser/build.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { rmSync } from "node:fs";
rmSync("dist", { recursive: true, force: true });
import { build } from 'esbuild';
await build({ entryPoints: ['src/index.ts'], bundle: true, format: 'esm', splitting: true, outdir: 'dist/esm', target: 'es2022', minify: true });
await build({ entryPoints: ['src/script.ts'], bundle: true, format: 'iife', outfile: 'dist/sentry-box.js', target: 'es2022', minify: true });
29 changes: 29 additions & 0 deletions browser/dist/esm/chunk-5LBAMSSV.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions browser/dist/esm/chunk-QBI2JL2F.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions browser/dist/esm/chunk-UVRZCAHX.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions browser/dist/esm/feedbackReplay-6PAAGWVV.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions browser/dist/esm/feedbackScreenshot-XN3R2P73.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading