Unreleased
Product brand association
DB admins: add nullable
BrandIDtoProductsreferencingBrandswithSET NULLdelete semantics so removing a brand detaches existing products instead of cascading deletes.DB admins: backfill
Products.BrandIDby joining onBrands.OwnerCompanyIDwhere it matchesProducts.CompanyID, leaving unmatched rows null for manual review.App clients: product create/edit forms surface an accessible brand autocomplete backed by
/api/brands/suggestions, persisting the selectedBrandIDwhile announcing resolver outcomes for screen readers.Import reviewers: CSV preview now resolves incoming brand values through
IBrandResolver, stores the resultingBrandID, and highlights per-product status alongside a summary card.
AI task schema
DB admins: extend
AiTasks.Kind(tinyint) to reserve theImageGenerationvalue for upcoming Azure OpenAI image workflows.DB admins: allow nullable
IdempotencyKeyvalues onAiTasksandAiTaskOutbox, enforce filtered unique indexes on(Kind, ConversationId, IdempotencyKey), and verifyRowVersionconcurrency tokens remain configured for OCC pipelines.App servers: redeploy AI conversation services so duplicate submissions reuse existing tasks, bounded OCC retries guard the scheduler, and idempotent handlers log retry/skip outcomes for diagnostics.
App clients: treat
IdempotencyKeyas optional when calling AI conversation endpoints; provide a value only when deduplication is required while filtered indexes maintain uniqueness when present.
AI retention tooling
- App servers: raise the default AI retention window to 180 days, persist
ExpiresUtcfor table transcripts, and updateAiRetentionServiceso expired Table Storage messages are purged alongside SQL artefacts. Manual GDPR deletes can target a single conversation (EraseConversationAsync) or a tenant prefix (EraseTenantAsync). SeeActualog.MVC/docs/admin/ai-conversation-retention-runbook.mdand the refreshed runtime flow doc for operations guidance.
Product-company relationship roles
Company relationship multi-role UI
App clients: category and product linking dialogs now submit
companyTypesarrays so multiple business roles can be applied in a single request. Update custom integrations to post role collections or masks via the same payload key.Docs: documented the selector behaviour in
Actualog.MVC/docs/ui/components/company-role-selector.md.Catalog linking continues to rely on catalog type instead of per-company roles; no database key changes are required for
CatalogsToCompanies.Search services: product indexing now stores normalized
company_rolestokens so Lucene filters can combine multiple role requirements. Rebuild the product index after deploying the tooling update.App clients:
/companies/ProductCompaniesListPartialacceptsrolesquery arrays and honours multi-role filters during Lucene-backed searches.API consumers:
/api/products/listresponses includelinkedCompanyRoleMask,linkedCompanyRoles, andlinkedCompanyRoleNamesprojections sourced from linked companies to support client-side role filtering.DB admins: add a
Roles(bigint) column toProductsToCompaniesstoring the combinedCompanyTyperole mask. Keep the existingTypecolumn for legacy readers but plan to migrate consumers to the flag column before it is removed.App servers: update any integrations that create product/company links to populate
Roles(or convert legacyCompanyTypevalues through the new helper methods) and treat theTypeproperty as deprecated.App clients: Product create/update DTOs and the data upload DTO now expose
companyRoles/companyRoleMaskfields. Update import workflows and API consumers to include role selections alongsidecompanyIdwhen creating products or staging uploads.API consumers:
/api/productscreate/update endpoints now combine submitted role collections into a bitmask before persisting links and fall back to the built-in manufacturer default when callers omit roles.Import operators: staging promotion reads
companyRoleMask/companyRolesmetadata from batches and applies the resulting mask when creatingProductsToCompanieslinks. Requeue existingReadyToCreaterows (or rerun the promotion stage) after deployment to backfill role masks on historical imports.
For experts
- Sign up and fill out your profile and don't forget to upload your best photo.
- Join one or more professional communities and define your area of expertise using facets;
- Find categories in which you are an expert, add them to favorites and follow experts in selected categories.
- Invite colleagues to join Actualog, communicate, share knowledge and work together.
- Look through our help section and focus on categories and attributes.
- Start working as an Expert, add more information about existing categories, and create new categories or edit translations and comments by other Experts.
For Companies and organizations
- Create company profile, add a description, and fill information at different languages.
- Add one or more communities to company profile, select facets to specify produced products.
- Send invitations to your colleagues to join the expert community Actualog.
- Add product categories, which produces, buys, sells or serves your company. Create a new category, if no one has yet added.
- Become familiar with the Partner Programs, choose a Partnership Programm for your company to support a category, a community or the whole project.