There is currently no supported/official way to “rebuild” or “synchronize” .suite/entities/*.json from an existing codebase (C# entity classes). ABP Suite’s code generation expects the corresponding .json metadata file to exist; without it, generation (including relationships/navigation configs) can fail with errors like “Cannot find the entity … Region.json”. This matches the current product behavior described in ABP’s support answers: Suite needs the relevant .json file and it is not automatically possible to generate it from entity classes.
Supported workaround (today): bring the missing entities into Suite by generating the JSON metadata files, then place them under .suite/entities/.
.suite/entities).About your “Option 2” expectation (UI preventing selection): As of the current behavior, Suite may let you select entities that are present in the solution, but generation still relies on the .suite metadata; there isn’t a documented guard that filters out non-Suite-managed entities.
If you’d like this added as a feature request (“Import existing entities / rebuild .suite metadata”), please contact the team so it can be tracked and prioritized.
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Please contact us at https://abp.io/contact.
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
?) when that property is not required in the backend API contract (OpenAPI/Swagger schema). This is why you now see quantity?: number; even if the C# property type is a non-nullable value type like int, bool, etc.What to do if you want quantity: number (non-optional) in generated proxies
using System.ComponentModel.DataAnnotations;
public class QuantityByDateDto
{
[Required]
public int Quantity { get; set; }
[Required]
public DateTime Date { get; set; }
}
This will cause the OpenAPI schema to mark these fields as required, and the Angular proxy generator will generate them without ?.
[Required], then there is no verified ABP-side switch (in v10.3 docs/context) to “force non-nullable value types to be required” in Angular generation. The generator follows the API schema.Sources (validated):
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
In ABP 9.3.x, yes—this head-of-line blocking is the effective/expected behavior of the default InboxProcessor: it processes inbox records in order, and when a handler throws, the processor rethrows and the same earliest failing inbox item is retried on every cycle, preventing later items from being processed.
In ABP 9.3.5 there is no built-in configuration to “skip the failing one and continue” (so the behavior you see is consistent with the framework behavior in that version).
Built-in max-retry / discard/dead-letter for inbox: this was added in ABP 10.0 via a new InboxProcessor failure retry policy.
InboxProcessorFailurePolicy options:
Retry (default): keeps strict order; retries from the failing event next cycle (head-of-line blocking remains).RetryLater: skips the failing event, continues with following events, and retries the failed one later with exponential backoff; default max retry is 10 (configurable); discards after max retry.Discard: discards the failing event immediately.InboxProcessorRetryBackoffFactor: initial backoff factor (default 10), used by RetryLater with exponential backoff.Recommended pattern for “Event A depends on data produced by Event B” in a microservice/inbox world:
RetryLater (or redesign to remove the causal dependency / add a local projection/state machine).Actionable fix (framework-level): upgrade to ABP 10+
IncomingEventRecord schema changes), then configure:
InboxProcessorFailurePolicy = RetryLater (to prevent head-of-line blocking)Sources (verified):
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Please contact us at https://abp.io/contact.
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Please contact us at https://abp.io/contact.
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
What you observed is correct for ABP Commercial Account Pro (Angular): the Idle Session Timeout feature described in the Account module docs is implemented as a client-side idle detection + client logout UX, and it does not (by itself) enforce a server-side “idle invalidation” of already-issued JWT access tokens. With self-contained JWTs, the API can’t reject a token for “idle” unless you introduce server-side state (introspection/reference tokens, a session store, per-request activity tracking + custom validation, etc.). The setting is still useful to protect against an unattended browser, but it is not sufficient as a security control against a stolen/captured bearer token.
If you need OWASP/NIST/PCI-style server-enforced inactivity timeout, implement one of these server-side patterns in your ABP/OpenIddict setup (ABP doesn’t currently provide this automatically as part of Idle Session Timeout):
LastActivityTime on the server (update on every successful authenticated API request via middleware/action filter).now - LastActivityTime > IdleThreshold.(user, device, client_id, session_id) and update activity per request.Also, if you keep the existing UX behavior, you should add a server-side revoke/logout endpoint and call it from the client when the idle countdown completes, so the happy path idle logout updates server state too (this still won’t help if the browser never runs the timer, but it closes the loop when it does).
Documentation note: the current doc page does not state “client-only” explicitly; it only describes the setting and the modal/logout behavior. There isn’t a verified official ABP source stating that the setting is server-enforced, nor one documenting a built-in server enforcement mechanism for JWT idle invalidation in Account Pro.
Links verified:
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
(1) Can I connect ABP Studio AI Agent with my organization’s Copilot account instead?
The official ABP AI Agent page does not document any “bring your own Copilot (GitHub Copilot / Microsoft 365 Copilot)” sign-in/provider option. What it does state is that ABP Studio lets you connect your workspace to multiple LLM providers/models (“Access the World’s Best AI Models… Choose between Claude, GPT, Gemini, or DeepSeek…”) from inside Studio.
So: No verified source that Copilot-account integration is supported; ABP Studio AI is positioned around selecting LLM providers/models in Studio settings.
(2) What is the code security level with ABP.io base AI? Is my code shared/used to train ABP/Volosoft AI?
The public “Security” section on the AI Agent page documents workspace-side controls (not a training/data-processing policy):
.abpignore to block secrets/certs/env files/private keys from being included as context(3) How do you guarantee AI-produced code does not include others’ licensed code?
No verified public statement on the ABP AI Agent page (or the ABP Studio overview doc snippet) that provides such a guarantee. In general, LLM-generated output can be similar to existing code; no ABP-verified guarantee is documented in the sources retrieved.
(4) Token budgets / alerts / what happens when tokens are spent?
ABP Studio documentation confirms an organization-level credits system and that usage is tracked and displayed in the interface (“Credits System… usage tracked and displayed in the interface.”).
The public AI Agent FAQ also states AI credits are purchased per organization via the organization page.
But alerts / budgeting controls / the exact behavior when credits run out are not specified in the verified sources retrieved.
What you should do for an “officially stated” enterprise answer
Since items (1)–(4) are largely policy/compliance topics and the public page doesn’t fully cover them, the only official channel to request a formal statement (DPA, retention, training, enterprise controls, budget enforcement, etc.) is: https://abp.io/contact.
Sources (verified)
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Please contact us at https://abp.io/contact.
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Server.AppService.GetItemsPagedInput.txt) that participate in generation. It generates based on the built-in template set that matches your ABP version; you can only customize/override existing templates.So, for your specific need (a non-paged GetListAsync input without MaxResultCount/SkipCount):
PagedAndSortedResultRequestDto-based input.using Volo.Abp.Application.Dtos;
public class GetItemsInput : SortedResultRequestDto
{
public string? FilterText { get; set; }
// your filterable properties...
}
and keep the paged one as:
public class GetItemsPagedInput : PagedAndSortedResultRequestDto
{
public string? FilterText { get; set; }
// your filterable properties...
}
maxResultCount isn’t required/expected by the generated TS typings.Links worth noting (verified):
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.