diff --git a/apps/red-ui/src/app/modules/admin/admin.routes.ts b/apps/red-ui/src/app/modules/admin/admin.routes.ts
index 233f15870..56dcd06cb 100644
--- a/apps/red-ui/src/app/modules/admin/admin.routes.ts
+++ b/apps/red-ui/src/app/modules/admin/admin.routes.ts
@@ -24,6 +24,7 @@ import { AuditService } from './services/audit.service';
import { DigitalSignatureService } from './services/digital-signature.service';
import { RulesService } from './services/rules.service';
import { SmtpConfigService } from './services/smtp-config.service';
+import { RulesLoggerService } from '@services/rules-logger.service';
const entityRoutes: IqserRoutes = [
{
@@ -95,6 +96,19 @@ const dossierTemplateIdRoutes: IqserRoutes = [
};
},
},
+ {
+ provide: ENVIRONMENT_INITIALIZER,
+ multi: true,
+ useFactory: () => {
+ const service = inject(RulesLoggerService);
+ return () => {
+ setTimeout(() => {
+ service.connect('/api/rules-logging/rulesocket');
+ console.log('Rules logger ready');
+ }, 2000);
+ };
+ },
+ },
],
},
{
diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html
index f2b47dab2..08bf5ad44 100644
--- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html
+++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.html
@@ -85,3 +85,5 @@
+
+
diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts
index 79ecfa33a..46e233f0e 100644
--- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts
@@ -24,6 +24,7 @@ import { rulesScreenTranslations } from '../../../translations/rules-screen-tran
import ICodeEditor = monaco.editor.ICodeEditor;
import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration;
import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
+import { RulesLoggerComponent } from '@components/rules-logger/rules-logger.component';
interface SyntaxError {
line: number;
@@ -60,6 +61,7 @@ const RULE_VALIDATION_TIMEOUT = 2000;
NamePipe,
NgForOf,
MatTooltip,
+ RulesLoggerComponent,
],
})
export default class RulesScreenComponent implements OnInit, ComponentCanDeactivate {
diff --git a/apps/red-ui/src/app/modules/shared/components/editor/editor.component.html b/apps/red-ui/src/app/modules/shared/components/editor/editor.component.html
index 5fa9ba7ee..0273a706b 100644
--- a/apps/red-ui/src/app/modules/shared/components/editor/editor.component.html
+++ b/apps/red-ui/src/app/modules/shared/components/editor/editor.component.html
@@ -8,3 +8,5 @@
>
+
+
diff --git a/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts b/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts
index e2538f236..7cdb030e6 100644
--- a/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts
+++ b/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts
@@ -14,6 +14,7 @@ import ICodeEditor = monaco.editor.ICodeEditor;
import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration;
import ILineChange = monaco.editor.ILineChange;
import IEditorMouseEvent = monaco.editor.IEditorMouseEvent;
+import { RulesLoggerComponent } from '@components/rules-logger/rules-logger.component';
const MIN_WORD_LENGTH = 2;
const lineChangeToDecoration = ({ originalEndLineNumber, originalStartLineNumber }: ILineChange) =>
@@ -32,7 +33,7 @@ const notZero = (lineChange: ILineChange) => lineChange.originalEndLineNumber !=
templateUrl: './editor.component.html',
styleUrls: ['./editor.component.scss'],
standalone: true,
- imports: [MonacoEditorModule, FormsModule, NgIf],
+ imports: [MonacoEditorModule, FormsModule, NgIf, RulesLoggerComponent],
})
export class EditorComponent implements OnInit, OnChanges {
@Input() showDiffEditor = false;
diff --git a/apps/red-ui/src/app/services/rules-logger.service.ts b/apps/red-ui/src/app/services/rules-logger.service.ts
new file mode 100644
index 000000000..bca531350
--- /dev/null
+++ b/apps/red-ui/src/app/services/rules-logger.service.ts
@@ -0,0 +1,11 @@
+import { WebSocketService } from '@services/web-socket.service';
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class RulesLoggerService extends WebSocketService {
+ get topicPrefix(): string {
+ return '';
+ }
+}
diff --git a/apps/red-ui/src/app/services/web-socket.service.ts b/apps/red-ui/src/app/services/web-socket.service.ts
index 41b08684e..094e07d76 100644
--- a/apps/red-ui/src/app/services/web-socket.service.ts
+++ b/apps/red-ui/src/app/services/web-socket.service.ts
@@ -19,6 +19,8 @@ export class WebSocketService extends RxStomp {
readonly #tenantService = inject(TenantsService);
readonly #destroyRef = inject(DestroyRef);
+ url: string;
+
constructor() {
super();
}
@@ -46,16 +48,11 @@ export class WebSocketService extends RxStomp {
}
connect(url: string) {
- const headers = { Authorization: 'Bearer ' + localStorage.getItem('token') };
- console.log(headers);
- this.configure({
- debug: (msg: string) => this.#logger.debug(msg),
- brokerURL: this.#config.API_URL + url,
- connectHeaders: headers,
- });
+ this.url = url;
+ this.configureConnection();
this.connectionState$.pipe(log('[WS] Connection state')).subscribe();
- this.webSocketErrors$.pipe(log('[WS] Errors')).subscribe();
+ this.webSocketErrors$.pipe(log('[WS] Errors')).subscribe(frame => this.configureConnection());
this.stompErrors$
.pipe(
tap(frame => {
@@ -69,4 +66,14 @@ export class WebSocketService extends RxStomp {
this.activate();
}
+
+ private configureConnection() {
+ const headers = { Authorization: 'Bearer ' + localStorage.getItem('token') };
+ console.log(headers);
+ this.configure({
+ debug: (msg: string) => this.#logger.debug(msg),
+ brokerURL: this.#config.API_URL + this.url,
+ connectHeaders: headers,
+ });
+ }
}
diff --git a/apps/red-ui/src/assets/config/config.json b/apps/red-ui/src/assets/config/config.json
index deb14e6da..3db1dafb1 100644
--- a/apps/red-ui/src/assets/config/config.json
+++ b/apps/red-ui/src/assets/config/config.json
@@ -1,7 +1,7 @@
{
"ADMIN_CONTACT_NAME": null,
"ADMIN_CONTACT_URL": null,
- "API_URL": "https://dan1.iqser.cloud",
+ "API_URL": "https://dom1.iqser.cloud",
"APP_NAME": "RedactManager",
"IS_DOCUMINE": false,
"RULE_EDITOR_DEV_ONLY": false,
@@ -13,7 +13,7 @@
"MAX_RETRIES_ON_SERVER_ERROR": 3,
"OAUTH_CLIENT_ID": "redaction",
"OAUTH_IDP_HINT": null,
- "OAUTH_URL": "https://dan1.iqser.cloud/auth",
+ "OAUTH_URL": "https://dom1.iqser.cloud/auth",
"RECENT_PERIOD_IN_HOURS": 24,
"SELECTION_MODE": "structural",
"MANUAL_BASE_URL": "https://docs.redactmanager.com/preview",