Skip to content

Changelog

All notable changes to the Wenex Platform are documented on this page. The format follows Keep a Changelog, and the project adheres to Semantic Versioning.

Unreleased

1.7.5 - 2026-09-12

Fixed

  • core: checkQueryExploits turns a groups filter into $in under any/client scopes too, not an exact-array match. @vhidvz
  • core: checkQueryExploits drops an empty groups filter under any/client scopes rather than matching []. @vhidvz

1.7.4 - 2026-09-09

Added

  • core: Data, Items, Total and Result gained an optional meta envelope, exposed by every data/items serializer. @vhidvz
  • protos: every data, items, Total and Result message gained an optional string meta field for gRPC metadata. @vhidvz
  • auth/auths: token reports which credential proved the login through the x-auth-credential meta key. @vhidvz
  • mcp: auth/apts and touch/push-histories joined the resource map, so all 52 collections answer the CRUD tools. @vhidvz

Changed

  • core: MetadataInterceptor moves the x-* keys of a response's meta into HTTP headers before serialization. @vhidvz
  • auth/auths: the gateway token route answers with AuthenticationDataSerializer and sets its x-* meta as headers. @vhidvz
  • auth/auths: AuthsService.token and the authentication model now resolve to Data<AuthenticationResponse>. @vhidvz
  • career: data and items serializers gained the @ApiSchema names their Swagger models were missing. @vhidvz
  • mcp: the resource map is typed Record<Collection, RestfulService>; no collection maps to null any more. @vhidvz
  • deps: @wenex/sdk moved to ^1.4.0, which supplies the auth.apts and touch.pushes.histories services. @vhidvz
  • docs/mcp: the resource specs record both collections as callable, and auth/apts as having no update tools. @vhidvz

Fixed

  • auth/auths: the gRPC token reply sends meta as the string its proto declares, via AuthenticationDataRpcSerializer. @vhidvz

1.7.3 - 2026-09-06

Changed

  • essential/sagas: the unroutable-saga counter and terminal-state test moved into @app/module/saga. @vhidvz

Fixed

  • essential/sagas: commit and abort stamp the row's final state before releasing the session and its rollback job. @vhidvz
  • essential/sagas: the rollback processor no longer overwrites a row that already reached a terminal state. @vhidvz
  • essential/sagas: a committed or aborted row answers directly, ending retry loops against a session that is gone. @vhidvz
  • essential/sagas: a saga unroutable to any machine is counted and named, instead of refusing 424 unlogged. @vhidvz
  • essential/sagas: the machine record is a renewed lease, so a hard death no longer leaves it registered for ever. @vhidvz
  • cleaner: a reconciler settles saga rows stranded AWAITING past their ttl with no registry entry anywhere. @vhidvz
  • essential/sagas: a terminal stamp is retried once, so a committed saga is never force-stamped ABORTED after it. @vhidvz
  • essential/sagas: the machine lease outlives the longest session it can hold, so a live owner is never unroutable. @vhidvz
  • essential/sagas: the unroutable-saga counter map is bounded, so a caller inventing ids cannot grow it. @vhidvz
  • pm2: essential instances get the same 2 GB V8 ceiling the container has — 2 916 MB of load became 2 072 MB. @vhidvz
  • cleaner: the saga reconciler reads the session registry once per pass, not once per row. @vhidvz

1.7.2 - 2026-08-30

Fixed

  • essential/sagas: the session sweep read MAX_SAGA_TTL (seconds) as ms and emptied the registry every minute. @vhidvz
  • essential/sagas: a forgotten session is now aborted and ended (remove, sweep, shutdown, failed start) — the heap leak. @vhidvz
  • essential/sagas: registry keyed by saga id, so a lookup or remove never hits another session; duplicate ids refused. @vhidvz
  • essential/sagas: an expired saga answers with why its session is gone, not no partition; assignment lookup guarded. @vhidvz
  • essential/sagas: abort/commit failures log under their own name and no longer dereference a missing saga document. @vhidvz
  • scripts/start.js: a child killed by a signal (heap exhaustion) exits 128+signal instead of 0, so a crash reads as one. @vhidvz

Changed

  • scripts/start.js caps the V8 heap at 2 GB (NODE_MAX_OLD_SPACE_SIZE); compose services restart on failure, 6 GB limit. @vhidvz

1.7.1 - 2026-08-20

Added

  • add a new sms provider to touch/sms resource - bale messenger @fdaei

Fixed

  • refuse a groups filter whose entries the caller may not name, which widened the read to the client. @vhidvz

1.7.0 - 2026-08-09

Fixed

  • stop wrapping trimValue in valueFrom; the pair blanked every element it touched. @vhidvz
  • restore logistic/vehicles creation, which that composition refused for every caller. @vhidvz
  • normalise Persian at index time: ZWNJ splits compounds, ye/kaf and digits fold, stopwords go. @vhidvz
  • answer an Elasticsearch failure with its own status and root cause, instead of a bare 500. @vhidvz
  • accept every search query option Elasticsearch accepts: boost, numeric terms, fuzziness forms. @vhidvz
  • name the field, the expected shape and the received value in a search validation error. @vhidvz
  • refuse a query container or leaf query holding more than one key, as Elasticsearch does. @vhidvz
  • require a list for a terms query; a scalar is a 400 from Elasticsearch. @vhidvz
  • wrap a search query whose root is not a bool; merging a constraint beside it made ES 500. @vhidvz
  • accept the {match: {field: 'text'}} shorthand, as term/terms in the same schema already do. @vhidvz
  • read a schema alternative as a schema, so a declared object form is reachable at all. @vhidvz
  • make {term: {field: {value: 'x'}}} reachable; the expanded form was declared and always refused. @vhidvz
  • answer a login by a user with no subjects with an assertion; it threw a TypeError and 500'd. @vhidvz
  • stamp items on financial/invoices, so an invoice can be created with line items by any caller. @vhidvz
  • join an incoming x-saga-session in transactions.init instead of committing the row in a nested one. @vhidvz
  • retry a transient write conflict in transactions.verify on a fresh saga before failing the transaction. @vhidvz
  • name the missing saga and the reason in sagas add/abort/commit, instead of a bare invalid transaction. @vhidvz
  • reap and report the per-machine saga session registry at a soft cap rather than silently filling. @vhidvz
  • distribute the Pay rounding remainder so a fraction split sums to the amount at the currency precision. @vhidvz
  • drop binary-float dust from totalPays, which refused exact fraction splits as unequal to the amount. @vhidvz
  • refuse an unknown loose query param on a by-id read; it was merged into the filter and read as "row gone". @vhidvz
  • answer 404 naming the zone from modifyPlugin.update, not a 500 that never mentions zones. @vhidvz
  • key the read cache with the saga session, so an in-session read no longer poisons the out-of-session view. @vhidvz
  • flush the read cache at tenant level, so a user-scoped write no longer leaves an app-level reader stale. @vhidvz

1.6.X - 2026-07-28

Added

  • plain secret support to generate TOTP code. @vhidvz
  • docs: add a Realtime Data (MQTT) reference — architecture, topics, message schema, the mqtt client, and EMQX authn/authz. @vhidvz
  • refactor: add \\[OID\\] pattern support in the preserver authorization @vhidvz
  • docs: add a canonical Request Headers reference (/api/headers) covering every header the gateway actually reads. @vhidvz
  • add: publisher new topics relay on identity @vhidvz
  • add: emqx authorization base on regular grants definition @vhidvz
  • add: groups base topic generation in publisher worker @vhidvz
  • add: wenex logo and favicon to VitePress docs site. @vhidvz
  • add: /changelog docs route rendering the platform changelog as the last sidebar item. @vhidvz
  • support for populating core fields identity (Mongo ID) and relations (Mongo ID array) on any resource @vhidvz
  • add: add send/template endpoint in touch/smss @fdaei
  • add: mcp specification and CRUD-style service tools @vhidvz
  • refactor: Refactored prompts with structured format (ACTION, TRIGGER, RULES) @alihajqani
  • refactor: Introduced shared data dictionary for better field understanding @alihajqani
  • refactor: Improved schemas, validation, and type safety across tools @alihajqani
  • refactor: Cleaned up codebase with better logging, performance, and readability @alihajqani

Changed

  • libs: set MongoDB readConcern: majority + writeConcern.journal: true for financial durability. @vhidvz
  • refactor: improvements in the preserver authorization logic @vhidvz
  • docs: regroup the sidebar/nav so Concepts, Services, and Workers are top-level groups, flattening navigation. @vhidvz
  • docs: de-duplicate the ABAC ownership model; the authorization page links to the canonical Access Control page. @vhidvz
  • docs: slim the authentication headers table to a pointer to the canonical Request Headers page. @vhidvz
  • refactor: MCP doc loader serves single-file docs and drops ?v= version-suffix parsing. @vhidvz
  • docs: merge each MCP doc's compact and extended versions into one self-contained file per resource. @vhidvz
  • docs: drop the ?v=c/?v=e version suffix and compact/extended machinery from all MCP docs. @vhidvz
  • refactor: onBeforeCreate logic @vhidvz
  • del: remove unwanted COMMON_COLLECTIONS constant from app services @vhidvz

Fixed

  • resolved a security issue that allowed registering a subject outside the token domain. @vhidvz
  • fix: TransferService.take() uses one atomic Lua lock script with bounded backoff instead of a 10s busy-wait. @vhidvz
  • fix: TransactionsService.init no longer holds a Mongo transaction open across the essential-service RPC call. @vhidvz
  • fix: failed verify() now aborts the saga, closing a SagaService.sessions memory leak in essential. @vhidvz
  • fix: TransferService.release() now checks lock ownership by txn id before deleting it. @vhidvz
  • fix: logger() skips masking when a debug namespace is disabled; trimmed per-message log dumps. @vhidvz
  • fix: bounded keepalive/backoff/retry channel options on all 14 inter-service gRPC clients. @vhidvz
  • fix: transfer lock TTL raised to 6s so it can't expire mid-verify under load and cause concurrent wallet writes. @vhidvz
  • fix: saga session/machine discovery uses non-blocking Redis SCAN instead of O(N) KEYS on the verify hot path. @vhidvz
  • fix: guard RedisService.del against empty key lists to avoid ERR wrong number of arguments for 'del'. @vhidvz
  • fix: re-subscribe Kafka consumers to topics created after startup so new mongo.* source topics get consumed. @vhidvz
  • security: escape redis pattern issue @vhidvz
  • docs: correct the domain service count to 14 (was 15) in README, getting-started, and ecosystem index. @vhidvz
  • docs: PostgreSQL is used by workers (logger/dispatcher), not the essential service; saga state is in MongoDB. @vhidvz
  • docs: cleaner purges saga stages from MongoDB via CLEANER_SAGA_STAGES_TTL, not PostgreSQL/CLEANER_SAGAS_TTL. @vhidvz
  • docs: drop preserver from the Kafka-consumer list — it is an EMQX ExHook gRPC server, not a Kafka consumer. @vhidvz
  • docs: thing/metrics.device is returned in responses and populatable, not write-only. @vhidvz
  • docs: CQRS webhooks are delivered by the dispatcher worker with the {id,op,after,before} payload, not publisher. @vhidvz
  • docs: APT create requires only name; scopes and subjects are optional (was marked required). @vhidvz
  • docs: note auth has two public routes and that zone group/client are AND-combined; fix GraphQL FilterDto usage. @vhidvz
  • docs: remove the non-existent x-domain request header from the authentication headers reference. @vhidvz
  • docs: Metadata domain/client/user derive from the JWT, not x-domain/x-client-id headers; user is uid. @vhidvz
  • docs: SDK multi-tenant usage relies on the coworker claim and zone=client, not an x-domain header. @vhidvz
  • fix: preserver granted permission or fixed @vhidvz
  • docs: thing/metrics.device is returned and populatable, not write-only in responses. @vhidvz
  • docs: drop the false thing/metrics append-only claim; metrics support update and delete. @vhidvz
  • docs: replace removed per-router MCP tool names in cross-service-pattern with shared find/count. @vhidvz
  • docs: correct MCP scope-splitting to whitespace, comma, semicolon, or pipe delimiters. @vhidvz
  • docs: document essential/saga-stages as MCP-callable via the shared CRUD tools. @vhidvz
  • docs: populating identity/relations requires a model in each populate entry. @vhidvz
  • fix: use '$date' in data[key] instead of optional chaining in debezium.util to avoid false positives @mhalizadeh
  • fix: replace isDateString with a custom isIsoString regex in tools.util for stricter ISO 8601 detection @mhalizadeh
  • fix: make location optional in career/branch BranchRpcSerializer @mhalizadeh
  • fix: libs/module/saga exception error status code @mhalizadeh
  • fix: thing/metric serializer device forgotten property @vhidvz
  • fix: population serializer transformer execution @vhidvz
  • fix: make location optional in branch schema @mhalizadeh
  • fix: population security bug @vhidvz

1.5.X - 2026-03-26

Added

  • refactor(apts.router): APT input and output schemas for improved validation and clarity @alihajqani
  • refactor(grants.router): grant schemas and remove unnecessary code @alihajqani
  • add(grants.router): Count Authorization Grants Tool for MCP @alihajqani
  • add(grants.router): search functionality for authorization grants @alihajqani
  • add(grants.router): Add Multiple Grants (Bulk) Tool for MCP @alihajqani
  • add: use cookie to get authorization token for authentication @winkcor
  • refactor mcpRegistration to register core documentation resource @alihajqani
  • improve date handling in apt.inspector @alihajqani
  • add MCP_CLIENT_APT_TOKEN to .env.example @alihajqani
  • read Authorization in mcp-client from .env @alihajqani
  • feat(mcp-client): enhance resource handling and add resource reading functionality @alihajqani
  • add: documentation in docs directory @vhidvz
  • add: mcp-client test script using ollama @vhidvz
  • add general/comments module @fdaei
  • add elastic search to content.posts @vhidvz
  • add special.stats and thing.metrics cleaner @vhidvz
  • add thing microservice @vhidvz
  • add travels/routing with valhalla service @m-hadi-arefi
  • add x-stat-type and x-stat-additional-props metadata @vhidvz
  • add auth/apts service @vhidvz

Changed

  • ci improvements @vhidvz
  • update @wenex/sdk version to 1.3.3 @vhidvz
  • remove unnecessary code from resolvers @vhidvz
  • copy build directory from dist to wnx for start script @vhidvz
  • revert: commit faddbebced749cb89f1849e9bcdf71cd06c6e0ec @vhidvz
  • add shares to the payment method of financial/invoice @vhidvz
  • indexed general/comments.type @vhidvz

Fixed

  • fix: mcp bug on deployment @mhalizadeh
  • fix: feature in product @fdaei
  • fix: CacheInterceptor issue on flush @vhidvz
  • fix: transfer issue with double and float in protos for financial @vhidvz
  • fix: withdraw real provider of transfer @vhidvz

1.4.X - 2026-01-26

Added

  • add stat for discount and profit @fdaei
  • support apt over mqtt emqx preserver micro @vhidvz
  • support for mongodb query $geoIntersects and $centerSphere @vhidvz
  • add stocks, stores, products and customers modules to career service @vhidvz

Changed

  • remove unused temp code @vhidvz
  • update UpdateCoreDto schema @vhidvz
  • distinct session for each apt token @vhidvz
  • update auth services to support apt token @vhidvz
  • update @wenex/sdk version @vhidvz
  • financial transaction some improvements @vhidvz

Fixed

  • fix stat collector unknown issue @vhidvz
  • fix UpdateCoreDto @vhidvz
  • fix WalletSerializer @vhidvz
  • improve error message in financial model @fdaei
  • fix: remove check is not empty in apts.service.ts for score and subject @yonus-a
  • fix: apt dto validation @vhidvz
  • fix update wallet dto @vhidvz
  • some improvements in financial and bug fix in dto's @vhidvz
  • remote scopes and subjects from index in apt.schema.ts @yonus-a
  • perform: jobId in dispatcher @vhidvz
  • fix schema type special in mongo @fdaei
  • fix Store Dto in fork enum @m-hadi-arefi

1.3.X - 2025-11-16

Added

  • add fuzzy search by elasticsearch to conjoint.messages @vhidvz
  • add sta and suggest subfields for elasticsearch indices @vhidvz
  • add x-lang header in metadata @fdaei
  • improve: cant sent message when channel is not applicable @fdaei
  • feat: mcp integration first try @vhidvz
  • add Brotli helper in core @vhidvz
  • add display_name field to Place type of logistic.locations @vhidvz
  • profit and discount to financial/invoices in invoice.items @vhidvz
  • feat: add file sharing @vhidvz
  • added more log to essential.sagas service @vhidvz

Changed

  • removed: unused code from user schema @vhidvz
  • set default value for identity/users.secret with random 40 hex chars @vhidvz
  • change the user dto condition in the username field must not be an email or phone number @vhidvz
  • update population of mongo runner in findOneAndUpdate and findOneAndDelete @vhidvz
  • style: health check improvements @vhidvz
  • transform value to lowercase in identity/users.email @vhidvz
  • make NominatimPlaceAddress.city optional @vhidvz
  • support brotli compression on query string @vhidvz
  • replaced Brotli helper dependencies package with brotli-wasm @vhidvz
  • update kafka connect script to capture emails, pushes and smss from touch db @vhidvz
  • refactor: model value in client domain of watcher worker @vhidvz
  • create grants for new domain @fdaei
  • validate domain before create it @fdaei
  • capture full response of webpush in props @vhidvz
  • refactor: client domain logic for root grant of each in domain watcher worker @vhidvz
  • update mongodb options @vhidvz
  • add KafkaContext.heartbeat to stat model @vhidvz
  • update mongodb options @vhidvz
  • refactor: essential.sagas exception handling improvements @vhidvz
  • add MONGO_LOAD_BALANCED env @vhidvz
  • enable trust proxy for real client IP @fdaei
  • update redis health check @vhidvz
  • remove kafka health check from essential @vhidvz
  • remove special micro from gateway health check @vhidvz
  • remove retryWrites and retryReads from mongodb config options @vhidvz
  • remove maxInFlightRequests and idempotent options from kafka connection @vhidvz
  • health check improvements and kafka retry.retries changed to max safe int @vhidvz
  • set autoCommit to false for essential.saga service @vhidvz
  • some improvements for stability in kafka options @vhidvz
  • some implement in saga module @vhidvz
  • refactor and optimize essential service @vhidvz
  • refactor and some improvements observer worker @vhidvz

Fixed

  • Check onBeforeCreate; if a user already exists on another client, just update clients instead @fdaei
  • inactive user creation issue for new client @fdaei
  • fix: whole scope on preserver @vhidvz
  • fix content type in header @fdaei
  • add cache control public to public files @winkcor
  • Add nullable=True to Core serializer for props @fdaei
  • add cross origin for resources headers crossOriginResourcePolicy @winkcor
  • revert: cross origin issue @vhidvz
  • cross origin issue @vhidvz
  • fix: bool_result undefined issue in preserver worker @vhidvz
  • fix cursor response header Content-Type @winkcor
  • fix: add profit and discount in financial/invoices and invoice.items in protobuf @vhidvz
  • download file using token in url query string @vhidvz
  • population policies issue base on subjects @vhidvz
  • loadBalanced is only a valid option in the URI issue @vhidvz
  • saga session expired issue @vhidvz
  • essential scale issues @vhidvz
  • fix paymentValue function to give correct amount for init transaction @winkcor
  • refactor: essential saga service @vhidvz
  • health check redis connection stick issue @vhidvz

1.2.X - 2025-09-29

--- [ Breaking Changes ] !!!

  • support population on a field with different models @vhidvz
  • name of identity property in context/configs changed to eid @vhidvz
  • name of identity property in identity/profiles changed to national_code @vhidvz
  • name of identity property in touch/email.smtp property changed to message_id @vhidvz
  • replaced entity mongo id property from general/workflows and replaced with name string @vhidvz

Added

  • remove OTP_SECRET validation from AuthCheckDto @fdaei
  • add check rpc method to AuthsService @vhidvz
  • add OnModuleInit to AuditLogger for test connectivity @vhidvz
  • remove client from store if client is not meet preconditions in dispatcher worker @vhidvz
  • added optional state field with default value pending to financial/invoices @iranmanesh-dev
  • feat: add users group watcher worker module @vhidvz
  • add property share to x-file-data on upload files @winkcor
  • feat: enhance ownership handling using user.groups property @vhidvz
  • feat: enhance authority exploits handling using user.groups property @vhidvz
  • feat: add Stashes module and integrate with dispatcher service @vhidvz
  • feat: add dispatcher.stashes module and integrate with cleaner service @vhidvz
  • feat: add ProjectionInterceptor and related utilities for handling projections @vhidvz
  • range location field added to career/employees @vhidvz
  • new metadata key x-file-data to include file data in requests @iranmanesh-dev
  • new interceptor for handling header data for special/files upload @vhidvz
  • new Unicode utility functions for text transformation @iranmanesh-dev
  • attendees field population to identity/profiles in general/events map @vhidvz
  • organizers field population to career/employees in general/events map @iranmanesh-dev
  • audit log interceptor, decorator, module and worker @vhidvz
  • request scope and policy to metadata keys and interceptor @vhidvz
  • cleaner worker to purge data from logger/audits and essential/saga.stages @vhidvz
  • code field to career/branches @iranmanesh-dev
  • profile field to career/employees @iranmanesh-dev
  • optional field status added to context/configs interface @vhidvz
  • optional field status added to context/settings interface @vhidvz
  • schema validation base on client config with ValidationInterceptor and @Validation decorator @vhidvz
  • categories field added to career/businesses @iranmanesh-dev
  • career micro and services @vhidvz
  • new service career/businesses libs added @vhidvz
  • name and title as optional field to logistic/locations @vhidvz
  • message_time and message_size added to touch/email.smtp @vhidvz
  • logistic location schema validation added to properties @vhidvz
  • new metadata key x-exclude-soft-delete-query to ignore assignSoftDeleteQuery functionality @vhidvz
  • scope validation support on emqx preserver @vhidvz

Changed

  • some improvements in kafka health check @vhidvz
  • health check refinement for kafka consumers @vhidvz
  • add producerOnlyMode to kafka producers @vhidvz
  • refine health check in all microservices @vhidvz
  • make logger kafka producer only mode @vhidvz
  • update all microservices health check @vhidvz
  • update log level of kafkajs to INFO @vhidvz
  • update KAFKA_CLIENT and CONSUMER_CONFIG to have more stability in consumers @vhidvz
  • improve concurrency in stats model and observer worker @vhidvz
  • update KAFKA_CLIENT and CONSUMER_CONFIG to have more stability in consumers @vhidvz
  • update nestjs version from 11.0.4 to 11.0.21 @vhidvz
  • update script:kafka-connect to include some collection not all @vhidvz
  • update consumer/client options to have more stability in consumers @vhidvz
  • authority exclude-soft-delete-query condition changed @vhidvz
  • refactor: dispatcher main job removed, simplified @vhidvz
  • dispatcher disable job delay changed to DISPATCHER_BULLMQ_LAST_ATTEMPT_PLUS_ONE @vhidvz
  • indexed general/workflows.data schema @vhidvz
  • removed on channel creation logic in conjoint/channel services @vhidvz
  • refactor: update SENSITIVE_PHRASES to include /api[_-]key$/ regex @vhidvz
  • refactor: improve error handling in fixInput function @vhidvz
  • refactor: enhance authorization logic in checkQueryExploits function @vhidvz
  • refactor: enhance hooks to return values from before and after methods @vhidvz
  • refactor(profiles): add restore onBeforeBulkUpdate method in identity/profiles @vhidvz
  • make 'name' field optional in channel DTOs, interfaces, schemas, and serializers @vhidvz
  • removed projection and population params from findOneAndUpdate and findOneAndDelete methods @vhidvz
  • fixed proto definition of organizers and attendees fields to be repeated @iranmanesh-dev
  • the profile field of career/employees was made optional @vhidvz
  • streamline collectStat function and enhance doc handling @vhidvz
  • refactor: enhance authorization checks in onClientAuthorize method @vhidvz
  • replace withSession with withSagaSession in service methods for consistency @vhidvz
  • Grant management during channel creation, deletion, and restoration @fdaei
  • general/events.organizer field renamed to general/events.organizers @vhidvz
  • updated BusinessType enum @vhidvz
  • improved dispatcher.transfer method in failure scenario @vhidvz
  • automatically registers models based base on map population definition @vhidvz
  • set x-saga..., x-can..., x-zone, x-at metadata header to response header @vhidvz
  • authorization model: special subject based on token identity to use for grants specification @vhidvz
  • mongodb seeds commands refactored @vhidvz
  • general/artifacts and context/settings index @vhidvz
  • category field name of career/services changed to categories @iranmanesh-dev
  • resource limitation for Elasticsearch in docker/docker-compose.elk.yml @iranmanesh-dev
  • identity property moved to core schema as optional mongo id string @vhidvz
  • core schema description index changed to text @vhidvz
  • add default permission scope own, share on none scoped action in checkQueryExploits @vhidvz
  • scoped action logic in setOwnership of canSet method @vhidvz
  • removed session scoped grant on x-can-with-id-policies @vhidvz
  • hot reload scope on refresh token with [Scope.None] @vhidvz
  • more control on constants using env with INIT_ prefix @vhidvz
  • refine limitation core constants @vhidvz
  • GraphQL DTOs name @vhidvz
  • GraphQL Serializers name @iranmanesh-dev

Fixed

  • health check for kafka server issue @vhidvz
  • fix: emqx unique client id issue @vhidvz
  • SIGTERM signal handling in start.js script to ensure proper shutdown of child processes @vhidvz
  • fix: stat issue on mongo transaction error @vhidvz
  • fix: script:kafka-connection script to loading .env environments variables @vhidvz
  • fix: type issue in essential/sagas @vhidvz
  • fix: some circular dependencies and authority query group bug fixed @vhidvz
  • fix: bullmq dashboards by updating bullmq packages version @vhidvz
  • update workflow schema to allow mixed types for tokens @vhidvz
  • escape special characters in topic replacement for authorization checks @vhidvz
  • fix career service serializer number type @winkcor
  • proto req.filter.populate type definition for essential/sagas file @vhidvz
  • token needs in auth model to update user details for logger interceptor @vhidvz
  • throwing rpc exceptions on AllExceptionsFilter @vhidvz
  • command issues @vhidvz
  • session onAfterChange condition issue @vhidvz
  • config model validation schema for CQRS value @vhidvz
  • businesses categories field in career proto @iranmanesh-dev
  • file size validation changed from isPositive to isNumber @vhidvz
  • financial/wallets schema @vhidvz
  • financial currencies model and schema @vhidvz
  • GraphQL enum names to prefixed with service name @vhidvz
  • logistic locations properties property dto transformer @vhidvz
  • correct order of WriteInterceptors @vhidvz
  • modelPlugin pre save issue @vhidvz
  • domain service provider mongoose enum validation check @vhidvz
  • Swagger DTOs and Serializers name @vhidvz
  • GraphQL account overlap between service financial and conjoint @vhidvz
  • GraphQL function overlap between service modules with the same name @vhidvz

1.1.X - 2025-07-15

Added

  • implement push history content and history DTOs, schemas, and serializers @vhidvz
  • add $text operator support to MONGO_OPERATION for text search functionality @vhidvz
  • message added to general/activities @iranmanesh-dev
  • state and title added to special/files @iranmanesh-dev
  • x-can-with-id-policies header to metadata keys @vhidvz
  • visited added to touch/notices schema @iranmanesh-dev
  • events module added to general micro @vhidvz
  • visited and icon props added to touch/notices @iranmanesh-dev
  • publisher worker to publish data change log on emqx topics @vhidvz
  • conjoint services @vhidvz

Changed

  • send push match query @vhidvz
  • implement push history content and history DTOs, schemas, and serializers @vhidvz
  • optimize push retrieval query to include session and identity @vhidvz
  • general/notices moved to touch/notices @vhidvz
  • update payload structure in publisher method to include source details @vhidvz
  • preserver authorization [ID] and [SE] @vhidvz
  • Add EVENT type to NoticeType enum @vhidvz
  • simplify MongoHelper initialization in multiple services @vhidvz
  • MongoHelper.init to improve model registration and population handling @vhidvz
  • CI @vhidvz
  • update DB_NAME function to use default prefix and adjust related tests @vhidvz
  • change collection type in CqrsSourceDto and CqrsSource interface @vhidvz

Fixed

  • update import statements to include toString utility in content DTOs @vhidvz
  • blacklist field from optional to repeated in touch/pushes @vhidvz
  • optional icon property to CreateNoticeActionDto @iranmanesh-dev
  • correct spelling of subtile to subtitle in touch/notices @vhidvz
  • missing semicolon in Activity message @vhidvz
  • publish method in publisher worker to include database and collection in message payload @vhidvz
  • emqx retain message viewed not found @vhidvz
  • emqx service token expiration exceptions @vhidvz
  • updateOwnership method to include uid in meta handling for improved user tracking @vhidvz
  • streamline grant deletion logic in GrantsService @vhidvz

1.0.X - 2021-01-01

Added

  • initial release 🎉​🎊​.