@forestadmin/forestadmin-client 1.36.6 → 1.36.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,9 @@ export default class EventsSubscriptionService implements BaseEventsSubscription
4
4
  private readonly options;
5
5
  private readonly refreshEventsHandlerService;
6
6
  private eventSource;
7
+ private heartBeatTimeout;
7
8
  constructor(options: ForestAdminClientOptionsWithDefaults, refreshEventsHandlerService: RefreshEventsHandlerService);
9
+ private detectBuffering;
8
10
  subscribeEvents(): Promise<void>;
9
11
  /**
10
12
  * Close the current EventSource
@@ -10,6 +10,16 @@ class EventsSubscriptionService {
10
10
  this.options = options;
11
11
  this.refreshEventsHandlerService = refreshEventsHandlerService;
12
12
  }
13
+ detectBuffering() {
14
+ clearTimeout(this.heartBeatTimeout);
15
+ this.heartBeatTimeout = setTimeout(() => {
16
+ this.options.logger('Error', `Unable to detect ServerSentEvents Heartbeat.
17
+ Forest Admin uses ServerSentEvents to ensure that permission cache is up to date.
18
+ It seems that your agent does not receive events from our server, this may due to buffering of events from your networking infrastructure (reverse proxy).
19
+ https://docs.forestadmin.com/developer-guide-agents-nodejs/getting-started/install/troubleshooting#invalid-permissions
20
+ `);
21
+ }, 45000);
22
+ }
13
23
  async subscribeEvents() {
14
24
  if (!this.options.instantCacheRefresh) {
15
25
  this.options.logger('Debug', 'Event source deactivated.. Use agent option [instantCacheRefresh=true] ' +
@@ -30,7 +40,11 @@ class EventsSubscriptionService {
30
40
  eventSource.reconnectInterval = 5000;
31
41
  eventSource.addEventListener('error', this.onEventError.bind(this));
32
42
  // Only listen after first open
33
- eventSource.once('open', () => eventSource.addEventListener('open', () => this.onEventOpenAgain()));
43
+ eventSource.addEventListener('open', () => eventSource.addEventListener('open', () => this.onEventOpenAgain()), { once: true });
44
+ eventSource.addEventListener('heartbeat', () => {
45
+ clearTimeout(this.heartBeatTimeout);
46
+ }, { once: true });
47
+ this.detectBuffering();
34
48
  eventSource.addEventListener(types_1.ServerEventType.RefreshUsers, async () => this.refreshEventsHandlerService.refreshUsers());
35
49
  eventSource.addEventListener(types_1.ServerEventType.RefreshRoles, async () => this.refreshEventsHandlerService.refreshRoles());
36
50
  eventSource.addEventListener(types_1.ServerEventType.RefreshRenderings, async (event) => this.handleSeverEventRefreshRenderings(event));
@@ -41,6 +55,7 @@ class EventsSubscriptionService {
41
55
  * Close the current EventSource
42
56
  */
43
57
  close() {
58
+ clearTimeout(this.heartBeatTimeout);
44
59
  this.eventSource?.close();
45
60
  }
46
61
  async handleSeverEventRefreshRenderings(event) {
@@ -72,4 +87,4 @@ class EventsSubscriptionService {
72
87
  }
73
88
  }
74
89
  exports.default = EventsSubscriptionService;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzLXN1YnNjcmlwdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhEQUFzQztBQUV0QyxtQ0FLaUI7QUFHakIsTUFBcUIseUJBQXlCO0lBRzVDLFlBQ21CLE9BQTZDLEVBQzdDLDJCQUF3RDtRQUR4RCxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUM3QyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO0lBQ3hFLENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDakIsT0FBTyxFQUNQLHlFQUF5RTtnQkFDdkUsOEJBQThCLENBQ2pDLENBQUM7WUFFRixPQUFPO1NBQ1I7UUFFRCxNQUFNLGlCQUFpQixHQUFHO1lBQ3hCLDBDQUEwQztZQUMxQyxlQUFlLEVBQUUsS0FBSztZQUN0QixPQUFPLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN4RCxLQUFLLEVBQUU7Z0JBQ0wsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsS0FBSyxHQUFHO2FBQ3JFO1NBQ0YsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLCtCQUErQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVELDJDQUEyQztRQUMzQyxXQUFXLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBRXJDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFD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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzLXN1YnNjcmlwdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhEQUFzQztBQUV0QyxtQ0FLaUI7QUFHakIsTUFBcUIseUJBQXlCO0lBSTVDLFlBQ21CLE9BQTZDLEVBQzdDLDJCQUF3RDtRQUR4RCxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUM3QyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO0lBQ3hFLENBQUM7SUFFSSxlQUFlO1FBQ3JCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDakIsT0FBTyxFQUNQOzs7O1NBSUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNqQixPQUFPLEVBQ1AseUVBQXlFO2dCQUN2RSw4QkFBOEIsQ0FDakMsQ0FBQztZQUVGLE9BQU87U0FDUjtRQUVELE1BQU0saUJBQWlCLEdBQUc7WUFDeEIsMENBQTBDO1lBQzFDLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hELEtBQUssRUFBRTtnQkFDTCxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixLQUFLLEdBQUc7YUFDckU7U0FDRixDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsK0JBQStCLEVBQUUsSUFBSSxD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/forestadmin-client",
3
- "version": "1.36.6",
3
+ "version": "1.36.7",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {