Skip to content
Open

3.x #68

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
13f817a
feat: add import center with multi-entity migration support
ManukMinasyan Dec 3, 2025
900cdc5
fix: correct entity dependencies in migration wizard
ManukMinasyan Dec 3, 2025
66914dd
fix: set skip duplicates as default for import
ManukMinasyan Dec 3, 2025
00786a6
fix: update minimum stability to stable and remove unused Response ty…
ManukMinasyan Dec 3, 2025
74a83a3
fix: make ExcelToCsvConverter readonly for arch test
ManukMinasyan Dec 3, 2025
30d954f
fix: update navigation group for Custom Fields and Import Center to D…
ManukMinasyan Dec 3, 2025
957d3db
fix: adjust button size and clean up import history section
ManukMinasyan Dec 3, 2025
1ab20e8
fix: update column span for custom fields in forms
ManukMinasyan Dec 3, 2025
a630655
merge with main
ManukMinasyan Dec 5, 2025
4f7b11e
fix: update navigation sort value for import center test
ManukMinasyan Dec 5, 2025
2ce0262
feat: add batch reuse method to prevent orphaned migration records
ManukMinasyan Dec 6, 2025
3a1c0c9
feat: add sequential import processing via queue middleware
ManukMinasyan Dec 6, 2025
bd6a154
feat: improve migration wizard ux with batch reuse and queued status
ManukMinasyan Dec 6, 2025
9005f28
feat: add robust import status detection for pending and failed states
ManukMinasyan Dec 6, 2025
5c618c5
test: add coverage for batch reuse, queue middleware and status detec…
ManukMinasyan Dec 6, 2025
d2d084e
style: polish import center and migration wizard design
ManukMinasyan Dec 6, 2025
d9beb58
fix: hide brand logo on authenticated pages to prevent click overlap
ManukMinasyan Dec 6, 2025
d82d9a7
fix: preserve page title while hiding sidebar logo
ManukMinasyan Dec 6, 2025
b35c5ec
fix: show pending status for imports waiting on queue worker
ManukMinasyan Dec 6, 2025
ffeb7b7
refactor: remove unused MigrationBatch system and dead code
ManukMinasyan Dec 6, 2025
193afcd
fix: simplify import status determination and remove unused methods
ManukMinasyan Dec 6, 2025
0ad12b4
fix: remove unnecessary latest sorting from import query
ManukMinasyan Dec 6, 2025
38dc46d
refactor: consolidate import entity config and fix duplicate handling
ManukMinasyan Dec 6, 2025
21c794f
fix: enforce team_id check in people importer email lookup
ManukMinasyan Dec 6, 2025
7a132ba
refactor: remove dead code and simplify opportunity importer
ManukMinasyan Dec 6, 2025
1536051
test: add import security and excel converter tests
ManukMinasyan Dec 6, 2025
213ff87
fix: use __DIR__ for reliable fixture paths in parallel tests
ManukMinasyan Dec 6, 2025
d83bffd
fix: add explicit labels to import columns for ui display
ManukMinasyan Dec 7, 2025
01c9437
feat: add csv analyzer and import preview services
ManukMinasyan Dec 7, 2025
2aac1c6
feat: add 4-step import wizard pages and views
ManukMinasyan Dec 7, 2025
f7b8da8
refactor: remove legacy import center in favor of wizard pages
ManukMinasyan Dec 7, 2025
6a53c43
feat: add import wizard links to entity resource pages
ManukMinasyan Dec 7, 2025
e9ff3c8
test: update import tests for new wizard pages
ManukMinasyan Dec 7, 2025
92fa8c8
fix: resolve alpine dragging scope error in file upload
ManukMinasyan Dec 7, 2025
387282e
fix: improve review values performance and expand behavior
ManukMinasyan Dec 7, 2025
64a62d3
feat: improve import wizard ux with attio-style design
ManukMinasyan Dec 7, 2025
b00c5e7
refactor: simplify review values with inline editing and remove modal
ManukMinasyan Dec 7, 2025
07d13a7
feat: redesign map columns step with attio-style two-column layout
ManukMinasyan Dec 7, 2025
e8b0e36
refactor: compact map/review steps with hover-based preview
ManukMinasyan Dec 7, 2025
0c9d5f7
fix: add visual highlight for hovered column in map step
ManukMinasyan Dec 7, 2025
22508a0
fix: improve hover state spacing with rounded rows
ManukMinasyan Dec 7, 2025
ade068a
refactor: simplify preview step - remove ready message, compact stats
ManukMinasyan Dec 7, 2025
99acea8
refactor: remove dead code and simplify with Laravel helpers
ManukMinasyan Dec 7, 2025
1ad411d
fix: add ImportPage to arch test ignoring list
ManukMinasyan Dec 7, 2025
da82398
fix: use Filament input components in map columns step
ManukMinasyan Dec 7, 2025
468925a
feat: add searchable dropdown for attribute selection with consistent…
ManukMinasyan Dec 7, 2025
0041f49
refactor: simplify to native Filament select with disabled mapped opt…
ManukMinasyan Dec 7, 2025
9dde514
refactor: extract csv reader logic and remove dead code
ManukMinasyan Dec 7, 2025
04091c5
fix: resolve column mapping select and alpine state issues
ManukMinasyan Dec 7, 2025
5aaf663
feat: add infinite scroll for review values with wire:intersect
ManukMinasyan Dec 7, 2025
5d411e5
fix: use scroll event listener for infinite scroll in container
ManukMinasyan Dec 7, 2025
46395b5
fix: convert csv iterator to array to prevent consumption across columns
ManukMinasyan Dec 7, 2025
5e11a45
refactor: remove unused hasMoreValues and reviewSearch
ManukMinasyan Dec 7, 2025
8f02860
perf: limit preview to 50 sample rows instead of all rows
ManukMinasyan Dec 7, 2025
b8bcc06
feat: show required field indicators and warning in map columns step
ManukMinasyan Dec 7, 2025
f694b1b
refactor: extract import feature to ImportWizard app-module
ManukMinasyan Dec 8, 2025
bd98cdd
chore: add ImportWizard resources to tailwind source paths
ManukMinasyan Dec 8, 2025
0382a4a
fix: resolve import model namespace and global scope issues in compan…
ManukMinasyan Dec 8, 2025
06d48c6
Merge branch 'main' into feature/easy-migration-next
ManukMinasyan Dec 10, 2025
dbb6aef
chore: update dependencies in composer.lock
ManukMinasyan Dec 10, 2025
447a0b6
fix: update drag-and-drop area styles for improved visibility
ManukMinasyan Dec 10, 2025
9006b4f
feat: convert people emails field from tags-input to email type
ManukMinasyan Dec 10, 2025
1b1af41
feat: add multi-value input component for email and link fields
ManukMinasyan Dec 10, 2025
8e6c9f3
fix: update schema definition for company creation action
ManukMinasyan Dec 10, 2025
5b0a3d6
fix: improve styling for drag-and-drop upload area
ManukMinasyan Dec 10, 2025
51526a5
feat: update import action labels for clarity in task, people, notes,…
ManukMinasyan Dec 10, 2025
b77973e
feat: add task exporter for csv export functionality
ManukMinasyan Dec 10, 2025
7966f4e
feat: enhance import wizard validation with custom field rules
ManukMinasyan Dec 11, 2025
ee06212
feat: add multi-value validation and error confirmation dialog
ManukMinasyan Dec 11, 2025
563c4c1
fix: handle duplicate column names in csv uploads gracefully
ManukMinasyan Dec 11, 2025
94c0da6
feat: remove unused export columns from TaskExporter
ManukMinasyan Dec 11, 2025
1f51b2f
refactor: use existing isMultiChoiceField instead of new method
ManukMinasyan Dec 11, 2025
ee769e0
fix: show actual validation error messages for multi-value fields
ManukMinasyan Dec 11, 2025
db56215
refactor: remove unused variable and simplify modal description
ManukMinasyan Dec 11, 2025
4c1ffd4
fix: resolve phpstan and rector issues in import wizard
ManukMinasyan Dec 11, 2025
449c070
chore: update dependencies and versions in composer.lock
ManukMinasyan Dec 12, 2025
e58c3e5
chore: add .mcp.json to .gitignore
ManukMinasyan Dec 13, 2025
6f99553
feat: implement afterSave hook to persist custom field values post-im…
ManukMinasyan Dec 13, 2025
df7b349
feat: implement ID-based record resolution for imports with validation
ManukMinasyan Dec 13, 2025
3c19a10
fix: correct email-based duplicate detection in people imports
ManukMinasyan Dec 13, 2025
193cb19
feat: update models and imports to support ULID instead of UUID for IDs
ManukMinasyan Dec 13, 2025
1e26c70
fix: handle null successful_rows in export notification messages
ManukMinasyan Dec 14, 2025
3e3101c
feat: add unique identifier warning modal to import wizard
ManukMinasyan Dec 14, 2025
7bc5f57
perf: optimize import wizard performance for SMB workloads
ManukMinasyan Dec 14, 2025
1e79c5d
fix: resolve critical import wizard bugs with Filament integration
ManukMinasyan Dec 14, 2025
f83501a
feat: configure dedicated queue for import jobs
ManukMinasyan Dec 14, 2025
a96ffeb
feat: convert base table migrations to use ulid primary keys
ManukMinasyan Dec 14, 2025
4baa1cc
feat: convert morph columns to ulidmorphs for ulid support
ManukMinasyan Dec 14, 2025
1a0c2a8
feat: add conditional ulid cutover migrations for production
ManukMinasyan Dec 14, 2025
460ff74
test: add comprehensive end-to-end import workflow tests
ManukMinasyan Dec 14, 2025
8bca0ae
fix: remove duplicate wire:target to prevent loading indicator hang
ManukMinasyan Dec 14, 2025
766661d
fix: use filament importer invoke method and improve error handling
ManukMinasyan Dec 14, 2025
5d777ac
feat: migrate media and ai_summaries tables to use ULID for model ide…
ManukMinasyan Dec 14, 2025
f80e81a
feat: enhance import process with improved validation and parallel jo…
ManukMinasyan Dec 15, 2025
46eff0a
feat: add Export model and bind to Filament export actions
ManukMinasyan Dec 15, 2025
165ff59
feat: implement fast record resolution for import previews using in-m…
ManukMinasyan Dec 19, 2025
3ab1bb5
fix: consolidate ulid migration and fix morph type handling
ManukMinasyan Dec 19, 2025
5ede1e0
chore: apply code style fixes from static analysis
ManukMinasyan Dec 19, 2025
38a260e
test: add ulid migration tests
ManukMinasyan Dec 19, 2025
2313dd4
fix: explicitly declare parent attributes on custom field models
ManukMinasyan Dec 19, 2025
1f1a3e0
fix: use ulid methods in original migrations for fresh installs
ManukMinasyan Dec 20, 2025
dcd93d2
feat: add foreign key recreation and email migration to ulid migration
ManukMinasyan Dec 20, 2025
e9d72dc
chore: update composer dependencies
ManukMinasyan Dec 20, 2025
4d22721
fix: use morph alias in email field type migration
ManukMinasyan Dec 20, 2025
9044395
chore: disable conditional visibility feature in custom fields
ManukMinasyan Dec 20, 2025
ed3f97f
refactor: migrate system administrator ID to ULID and update related …
ManukMinasyan Dec 21, 2025
8ff8c7c
refactor: cast entity IDs to string for consistent array type handling
ManukMinasyan Dec 23, 2025
c6fb88d
refactor: streamline import logic and enhance type hinting across mul…
ManukMinasyan Dec 23, 2025
ce03c84
fix: use app models with ulid support in import tests and code
ManukMinasyan Dec 24, 2025
04bfa66
refactor: update namespace for CustomField model and adjust entity ty…
ManukMinasyan Dec 24, 2025
d498c8f
Removed csv examples
ManukMinasyan Dec 24, 2025
ff8cda3
refactor: remove excel support and phpspreadsheet dependency
ManukMinasyan Dec 24, 2025
58ed578
fix: remove middleware() to prevent import job failures
ManukMinasyan Dec 24, 2025
60b22b2
refactor: remove reflection from import preview service
ManukMinasyan Dec 24, 2025
d442561
docs: update import guide to reflect csv-only support
ManukMinasyan Dec 24, 2025
83d24a2
test: add csv reader and preview service tests
ManukMinasyan Dec 24, 2025
66dc7c2
test: remove orphaned excel converter test
ManukMinasyan Dec 24, 2025
8652ce1
feat: enhance import functionality with new CSV row counter and confi…
ManukMinasyan Dec 25, 2025
ecc47dc
feat: enhance domain handling and add multiple value support for cust…
ManukMinasyan Dec 25, 2025
07131aa
refactor: update entity type handling to use morph aliases in CsvAnal…
ManukMinasyan Dec 25, 2025
5efd9ec
refactor: rename domain_name to domains and migrate to json_value sto…
ManukMinasyan Dec 25, 2025
cec2efe
refactor: migrate SINGLE_CHOICE field value references from integer t…
ManukMinasyan Dec 25, 2025
cff0614
refactor: enhance domain handling and improve collection usage in Com…
ManukMinasyan Dec 25, 2025
420ff7d
Merge branch 'main' into v3
ManukMinasyan Dec 26, 2025
51f303f
feat: migrate to flowforge v3 decimal position system
ManukMinasyan Dec 27, 2025
665e047
fix: preserve user board order in flowforge v3 migration
ManukMinasyan Dec 27, 2025
2d5eea5
fix: use inline schema for kanban card layouts
ManukMinasyan Dec 27, 2025
effe4bc
refactor: enhance layout and improve join clause type handling
ManukMinasyan Dec 27, 2025
f22c169
refactor: optimize task card fields retrieval and enhance due date fo…
ManukMinasyan Dec 27, 2025
f15b483
refactor: optimize custom fields retrieval for task board cards
ManukMinasyan Dec 27, 2025
fc555ea
refactor: optimize task board status field handling and improve form …
ManukMinasyan Dec 27, 2025
1bce62b
chore: update composer.lock and refactor OpportunitiesBoard visibilit…
ManukMinasyan Dec 27, 2025
6d680cc
refactor: enhance type handling and visibility for board components
ManukMinasyan Dec 27, 2025
e7e935a
chore: update package versions and remove local repository paths in c…
ManukMinasyan Dec 27, 2025
b192211
refactor: simplify status custom field retrieval and remove cached st…
ManukMinasyan Dec 27, 2025
473bf75
refactor: replace morphs with ulidMorphs for tokenable relationship
ManukMinasyan Dec 27, 2025
963ddfb
refactor: add type hint for statusCustomField method
ManukMinasyan Dec 27, 2025
3acc23e
test: add comprehensive UI tests for ImportWizard component workflow
ManukMinasyan Dec 28, 2025
ec94c56
refactor: add id matching and simplify company matcher logic
ManukMinasyan Dec 28, 2025
1aa28db
refactor: pass company id to matcher in preview and imports
ManukMinasyan Dec 28, 2025
ebae347
refactor: update preview ui for simplified match types
ManukMinasyan Dec 28, 2025
8feaf77
refactor: simplify error message for bulk import file handling
ManukMinasyan Dec 28, 2025
da80d09
refactor: remove external references from company matching comments
ManukMinasyan Dec 28, 2025
32ba1e6
feat: add company_id column to people and opportunity importers
ManukMinasyan Dec 28, 2025
25a4696
test: update company matcher tests for simplified matching logic
ManukMinasyan Dec 28, 2025
6e88419
refactor: simplify import preview ui to show only create and update c…
ManukMinasyan Dec 28, 2025
598e88e
refactor: remove name and title based matching from importers to alig…
ManukMinasyan Dec 28, 2025
37b2c0f
Merge pull request #70 from Relaticle/refactor/simplify-company-matching
ManukMinasyan Jan 1, 2026
1534c65
chore: update package versions in composer.lock for compatibility
ManukMinasyan Jan 1, 2026
814e9c1
feat: add show-only-errors filter to import wizard review step
ManukMinasyan Jan 1, 2026
1c048cd
feat: add import preview functionality with session management and cl…
ManukMinasyan Jan 1, 2026
3ff6332
fix: resolve team id from authenticated user in preview api routes
ManukMinasyan Jan 1, 2026
7887474
feat: add filament confirmation modal to start import action
ManukMinasyan Jan 1, 2026
3a5ab5e
refactor: inline HasImportEntities trait into ImportWizard component
ManukMinasyan Jan 1, 2026
74f53c1
refactor: remove redundant booted methods from Import and Export models
ManukMinasyan Jan 1, 2026
5818d85
perf: memoize errorIssues collection in ColumnAnalysis
ManukMinasyan Jan 1, 2026
eb91c17
chore: remove unused method and clarify domain matching comment
ManukMinasyan Jan 1, 2026
faf9b1a
refactor: streamline import tests by consolidating helper functions a…
ManukMinasyan Jan 1, 2026
6c603b8
refactor: enhance type hinting and add utility functions for import t…
ManukMinasyan Jan 1, 2026
5aeb94c
test: enhance ImportWizardUITest with error handling and improved tes…
ManukMinasyan Jan 1, 2026
92990e3
refactor: streamline docblocks for improved clarity and consistency
ManukMinasyan Jan 1, 2026
725e74e
refactor: remove unused processing and readiness indicators from impo…
ManukMinasyan Jan 1, 2026
614fb01
refactor: adjust layout for loading indicator and navigation buttons …
ManukMinasyan Jan 1, 2026
88d2a45
Merge pull request #71 from Relaticle/feature/import-wizard-error-filter
ManukMinasyan Jan 1, 2026
a5d4115
Merge branch 'feature/import-wizard-error-filter' into 3.x
ManukMinasyan Jan 2, 2026
54bb02d
refactor: consolidate import session management and enhance cleanup l…
ManukMinasyan Jan 2, 2026
19c93a0
feat(import-wizard): add new companies counter to preview stats
ManukMinasyan Jan 2, 2026
8bb8059
fix(import-wizard): correct company ID field and add company_name war…
ManukMinasyan Jan 2, 2026
3eafe29
feat: enhance import functionality with improved column matching and …
ManukMinasyan Jan 3, 2026
327f08a
Merge pull request #72 from Relaticle/improvements
ManukMinasyan Jan 3, 2026
550daf6
feat: update dependencies for improved performance and compatibility
ManukMinasyan Jan 3, 2026
c6d6e8b
feat(import-wizard): add date format detection and validation
ManukMinasyan Jan 3, 2026
0e85b30
docs(import): rewrite import guide with accuracy and clarity
ManukMinasyan Jan 3, 2026
c8e5eb6
fix(docs): enable markdown table rendering in documentation
ManukMinasyan Jan 3, 2026
7660cae
style(docs): remove csv syntax highlighting for consistent code blocks
ManukMinasyan Jan 3, 2026
66284a4
chore(docs): reorder import guide before api docs
ManukMinasyan Jan 3, 2026
73af8da
docs: complete documentation overhaul with accuracy fixes
ManukMinasyan Jan 3, 2026
39957ff
refactor: simplify import wizard with carbon and laravel helpers
ManukMinasyan Jan 4, 2026
7f939e3
Merge pull request #73 from Relaticle/3x/import-wizard-date-formats
ManukMinasyan Jan 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

# Queue Configuration
# The application uses separate queues for different job types:
# - default: General application jobs
# - imports: CSV import jobs (handled by dedicated workers with higher timeout/memory)

CACHE_STORE=redis
CACHE_PREFIX=relaticle_cache

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ yarn-error.log
CLAUDE.md
AGENTS.md
boost.json
.mcp.json
/.ai
/.fleet
/.idea
Expand Down
20 changes: 0 additions & 20 deletions .mcp.json

This file was deleted.

28 changes: 14 additions & 14 deletions app-modules/Documentation/config/documentation.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,25 @@
|
*/
'documents' => [
'business' => [
'title' => 'Business Guide',
'file' => 'business-guide.md',
'description' => 'Documentation for business users and stakeholders.',
'getting-started' => [
'title' => 'Getting Started',
'file' => 'getting-started.md',
'description' => 'Set up your account and learn the basics.',
],
'technical' => [
'title' => 'Technical Guide',
'file' => 'technical-guide.md',
'description' => 'Technical documentation for developers and system administrators.',
'import' => [
'title' => 'Import Guide',
'file' => 'import-guide.md',
'description' => 'Import data from CSV files.',
],
'quickstart' => [
'title' => 'Quick Start Guide',
'file' => 'quick-start-guide.md',
'description' => 'Get started quickly with essential information.',
'developer' => [
'title' => 'Developer Guide',
'file' => 'developer-guide.md',
'description' => 'Installation, architecture, and contributing.',
],
'api' => [
'title' => 'API Documentation',
'title' => 'API Reference',
'file' => 'api-guide.md',
'description' => 'API reference and integration documentation.',
'description' => 'REST API documentation (coming soon).',
],
],

Expand Down
96 changes: 50 additions & 46 deletions app-modules/Documentation/resources/markdown/api-guide.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,71 @@
# API Documentation
# API Reference

This guide provides documentation for the Relaticle API, allowing developers to integrate Relaticle's CRM capabilities with other applications.
> **Coming Soon** — The REST API is under active development.

## API Overview
---

Relaticle's API is currently under development. This section will be updated with comprehensive documentation once the API is available for use.
## Overview

## Planned API Features
Relaticle will provide a comprehensive REST API for integrating with external applications and building custom workflows.

The Relaticle API will include:
---

- REST API endpoints for all major resources (Companies, Contacts, Opportunities, Tasks, Notes)
- Authentication via API tokens
- Comprehensive query capabilities
- Pagination and filtering options
## Planned Features

## Authentication
| Feature | Description |
|---------|-------------|
| **Authentication** | API tokens via Laravel Sanctum |
| **CRUD Endpoints** | Companies, People, Opportunities, Tasks, Notes |
| **Filtering** | Query parameters for filtering and searching |
| **Pagination** | Cursor-based pagination for large datasets |
| **Rate Limiting** | Fair usage limits per token |

Our authentication system will use API tokens for secure access to the API.
---

## Core Resources
## Planned Endpoints

The API will provide access to the following resources:
```
GET /api/companies
POST /api/companies
GET /api/companies/{id}
PUT /api/companies/{id}
DELETE /api/companies/{id}

### Companies
GET /api/people
POST /api/people
GET /api/people/{id}
PUT /api/people/{id}
DELETE /api/people/{id}

The Companies endpoint will allow you to:
- List companies
- Retrieve company details
- Create new companies
- Update existing companies
- Delete companies
GET /api/opportunities
POST /api/opportunities
GET /api/opportunities/{id}
PUT /api/opportunities/{id}
DELETE /api/opportunities/{id}

### Contacts (People)
GET /api/tasks
POST /api/tasks
GET /api/tasks/{id}
PUT /api/tasks/{id}
DELETE /api/tasks/{id}

The Contacts endpoint will allow you to:
- List contacts
- Retrieve contact details
- Create new contacts
- Update existing contacts
- Delete contacts
GET /api/notes
POST /api/notes
GET /api/notes/{id}
PUT /api/notes/{id}
DELETE /api/notes/{id}
```

### Opportunities
---

The Opportunities endpoint will allow you to:
- List opportunities
- Retrieve opportunity details
- Create new opportunities
- Update existing opportunities
- Delete opportunities
## Stay Updated

### Tasks
Follow the repository for release announcements:

The Tasks endpoint will provide similar CRUD operations for tasks.
[github.com/Relaticle/relaticle](https://github.com/Relaticle/relaticle)

### Notes
---

The Notes endpoint will provide similar CRUD operations for notes.
## Have Suggestions?

## API Release Timeline

We are actively working on our API. If you would like to be notified when it becomes available, please follow our GitHub repository for updates.

## Contributing

If you have suggestions for our upcoming API, please open an issue in our GitHub repository with your ideas and requirements.
Open an issue on GitHub to share your API requirements and use cases.
134 changes: 0 additions & 134 deletions app-modules/Documentation/resources/markdown/business-guide.md

This file was deleted.

Loading
Loading