Code Monkey home page Code Monkey logo

atrocore / atrocore Goto Github PK

View Code? Open in Web Editor NEW
101.0 6.0 36.0 47.88 MB

AtroCore is an open-source Data Platform, Data Management and Master Data Management (MDM) software, which can be used to quickly create any business application.

Home Page: https://atrocore.com

License: GNU General Public License v3.0

PHP 28.82% Smarty 2.72% HTML 1.04% CSS 18.74% JavaScript 44.02% SCSS 4.66%
business-application business-application-platform enterprise-application enterprise-application-platform rad rapid-application-development mdm master-data-management data-management data-management-platform data-platform business-app data-management-system business-apps

atrocore's Introduction

Logo

This repository is hosted on: https://gitlab.atrocore.com/atrocore/atrocore

GitHub mirror: https://github.com/atrocore/atrocore

This repository is hosted by GitLab, we use GitHub to host its mirror.

What Is AtroCore?

AtroCore is an open-source software distributed under GPLv3 License for free.

AtroCore is a Data and Process Management software. It is a software ecosystem designed for rapid development of responsive web-based business applications of any kind (ERP, PIM, CRM, DMS, MDM, DAM, etc.). Thanks to its configuration possibilities it is an excellent tool for cost-effective and timely application development that comes with the powerful out-of-the-box functionality.

AtroCore is a single page application (SPA) with API-first architecture and flexible data model based on configurable entities and relations. You can organize any data and business-related processes directly in AtroCore, many of them via a simple and user-friendly configuration.

AtroCore Software can be used as:

  • Data Platform
  • Application Development Platform
  • Database Management System (DBMS)
  • Data Integration Software
  • Business Process Management
  • Master Data Management
  • Data Warehouse Software
  • Enterprise Content Management (ECM)

For Whom Is AtroCore?

AtroCore is the best fit for businesses, who want to:

  • unify any kind of data;
  • increase data quality;
  • solve custom business problems;
  • store data and organize business processes;
  • set up and use a middleware to connect with the third-party systems;
  • create added value and best experience for their employees, customers, and partners;
  • extend the functionality of the existing software infrastructure.

Software based on AtroCore

The following full-fledged software products are already available on the AtroCore basis:

What is on Board?

Here is a AtroCore package description in detail:

Feature Description
Dashboards Use multiple dashboards to control all main activities in the system.
Module Management It allows you to install and/or update any module directly from the administration panel. Just choose the version you want to use.
Configurable Data Model You can configure the data model directly from the administration panel, create new or edit existing entities and set relations of different types.
UI Handlers You can configure the conditions that make some fields invisible, read-only or editable etc.
Configurable UIs Use it to configure any User Interface in the system or to show up the panels for related entities, via drag-and-drop.
UI Translations You can edit any label in the system, in all languages you want to use.
Configurable navigation Use the drag-and-drop functionality to set up the navigation as you wish, also separately for each user, if needed.
Scheduled Jobs You can configure, which jobs should be run by cron and at what schedule.
Notifications Set up a system or e-mail notifications for different events in the system.
Data import and export You can import or export any data to any and from any entity in the system, even those you have just created.
Advanced mass updates Choose the entries to be updated, set the new values and perform a mass update.
Advanced search and filters You can configure the filters and search criteria as you wish, and save them, if you want to use the saved filters later.
Change Log and Stream See all changes to the entries (who, old and new value, when) and add your own posts with a timestamp and attachments.
Queue Management Use it if you want to run or control processes in the background.
Permissions and access Management Enterprise Level ACL based on Teams and Roles, with access level (own, team, all). You can edit permissions even for each field separately.
REST API Integrate it with any third-party software, fully automated.

Technologies

image

Integrations

AtroCore has a REST API and can be integrated with any third-party system. You can also use import and export functions or use our modules (import feeds and export feeds) to get even more flexibility. We offer automated integrations with a lot of systems as a paid functionality.

What Are the Advantages of Using It?

  • Really quick time-to-market and low implementation costs
  • Configurable (entities, relations, layouts, labels, navigation)
  • Extensible - you can use our or write your own modules
  • Free – 100% open source, licensed under GPLv3
  • API-first development approarch
  • REST API for all your custom configurations in the data model
  • Web-based and platform independent
  • Based on modern technologies
  • Good code quality
  • Responsive and user-friendly UI
  • Easy to maintain and support
  • Powerful export and import functionality (additional free modules are needed)

Requirements

  • Dedicated (virtual) Linux-based server with root permissions.
  • Ubuntu as Operating System is recommended but not required.
  • PHP 7.4 (or above).
  • MySQL 5.5.3 (or above) or PostgreSQL 14.9 (or above).

Please note, system will definitely NOT work on a usual hosting, a managed server hosting should be checked on a case-by-case basis – with a high probability it will NOT work.

Installation

Installation Guide is available here.

Demo

This is a Demo with PIM module installed.

License

AtroCore is published under the GNU GPLv3 license.

Resources

atrocore's People

Contributors

antebra avatar asapko avatar atrolex avatar douglaswafo avatar goginyan avatar kariglu avatar marcus-at-localhost avatar oletimo avatar romanzablodsky avatar rratsun avatar rzablodskyi avatar snechep avatar vladzimir avatar yurdm avatar zheravlik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

atrocore's Issues

Demo data

Thank you for the wonderful boilerplate, Amazing work.

I have followed the installation guide to install AtroPINE and AtroDAM with demo data, but unfortunately I can see the dump data is not matching the table structure in the database. for example:

INSERT INTO `user` (id,deleted,is_admin,user_name,password,salutation_name,first_name,last_name,is_active,is_portal_user,is_super_admin,title,gender,created_at,default_team_id,avatar_id,created_by_id,email_address,phone_number,portal_id,account_id) ....
**MySQL said**
#1054 - Unknown column 'email_address' in 'field list'

Appreciate, if you please share the latest updated demo data.

mysql server migration

Hello,

I have configured atrcore and it is accessible. However mysql is on the same instance and I want to move it to an RDS server.
Is they any place where the steps are documented so that I can make the necessary changes.

Thanks in advance.

Regards
Anil

asset category inheritance the assets of the parent

When I create a sub Asset Category, the Assets in the parent Asset Category are also associated in the sub Asset Category. Can the parent Assets not be made to inherit?

AtroCore v1.4.108
AtroDAM v1.4.6

Installation Atrocore - Ubuntu

Hi,
when i try to install atrocore with the following command i have this error:
image

[RuntimeException]
Could not delete /var/www/coteflux-atrocore-project/vendor/zendframework/zend-stdlib:

Can you help me please ?
Thanks.

Assigning an attribute group to a product family is failing by validation rule

Hi,
When I try to add an attribute group to a product family I'm getting a validation error as follows:
Error 400: Validation failed. 'productFamily_name' is required.

I tried to set the "name" field for product family to non-required (just for testing) but I got another error:
Error 400: Validation failed. 'attribute_name' is required.

I tried to create new product family and new attribute group, rebuild the database, clear cache, perform php index.php sql diff --run and php composer.phar restore, but nothing helped.

No composer.phar in your project

Hello,
we are struggling to install your project, the composer of php doesn't recongnize some package.
By checking you repository for customer composer.php it doesn't exist.
Could anyone help ?

"Product Type" field is missing for "Product Bundles" module

Hi,
I've installed the "Product Bundles" module. To create a bundled product, in the documentation it says that I should select the "Product Bundle" in the "Product Type" field, but no such field exists. It doesn't list in the fields of the "Product" entity, and also in the layout settings it's missing.

Thanks for your help!

Mass updates of required multi-language fields that are empty fail silently

The “Name” field of most entities is usually set as multi-language and required.
When adding a new language for the entities, this new “Name” field is typically empty.
Trying to edit an entity in inline-mode usually throws an error (the toast msg on top of the app) saying something like “'Name / zh_CN' can't be empty” or so.
By using the Mass-Update from the listing, any update fails silently, but I get a success message. It's only obvious in the logs that something went wrong.

I noticed this by using the translation module to mass-translate empty fields, and was wondering why it didn't work (only if there was an entry set in the new language field).

Removing the “required” attribute temporarily allows me to mass-update.

Mass Add Relation list differs from list available adding relationship directly in items

We are adding relationships to products in Atropim for categories. When adding relationships en mass in the product list, the list of available categories displays all leaf categories available (image 1)
image1

When categories are selected in the categories list in the product detail page for the same product which was updated using mass update, the list of available categories is blank (image2)

image2

Following through the install instructions on Ubuntu 18.04

Following through the install instructions on Ubuntu 18.04

The following command:

sudo git clone https://github.com/atrocore/skeleton-pim-no-demo.git . && php composer.phar self-update && php composer.phar update
Cloning into '.'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 32 (delta 9), reused 12 (delta 3), pack-reused 0
Unpacking objects: 100% (32/32), done.

Generates this error:

Cannot create cache directory /home/user/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /home/user/.composer/cache/files/, or directory is not writable. Proceeding without cache
Failed! The new version of the composer can't be copied. Try to download manually 'https://packagist.atrocore.com/composer/composer.phar'.

I'm confused, any ideas or suggestions are much appreciated.

Thank you.

Originally posted by @baldgzr in #189

Mass Upload no working

After the release of the new release, the system no longer allows for a bulk upload.

AtroDAM v1.5.12
AtroCore v1.6.6

Schermata 2023-06-29 alle 15 36 34

Error from Rebuild database

Error from Rebuild database. In data/logs/*.log I see:"
[2023-09-14T07:27:13.150359+00:00] Log.ALERT: Rebuild database fault: PDOException: SQLSTATE[HY000]: General error: 1283 Column 'sku' cannot be part of FULLTEXT index in /var/www/atrocore/vendor/doctrine/dbal/src/Driver/PDO/Connection.php:72
[2023-09-14T07:27:15.863870+00:00] Log.ERROR: API [POST]:/api/v1/Admin/fieldManager/:scope, Params:Array ( [scope] => ProductAsset ) , InputData: {"type":"bool","dynamicLogicVisible":null,"dynamicLogicReadOnly":null,"name":"isMainImageProte","label":"IsMainImageProte","labelRuRu":"IsMainImageProte","tooltipText":null,"tooltipLink":null,"isMultilang":false,"default":false,"audited":false,"readOnly":false,"tooltip":false} - Error while rebuilding database. See log file for details. [] []

What i can do?

Import job with null value character causes import of list values to be emptied of data.

Hello
When I have a character for example '--' or '$' as an empty value flag, the import of lists does not work.
For example I have a list field for "Status in ERP", this gets cleared if I use characters for empty value.

I need to use blank value characters if I don't want to import all attributes for all classifications and products.
A classification for a product type can contain 10 attributes, but my import file can contain 50 attributes, then I don't want to get a bunch of empty attributes that have nothing to do with the article.

Security concern

Hello 👋

I run a security community that finds and fixes vulnerabilities in OSS. A researcher (@deepakkuma24) has found a potential issue, which I would be eager to share with you.

Could you add a SECURITY.md file with an e-mail address for me to send further details to? GitHub recommends a security policy to ensure issues are responsibly disclosed, and it would help direct researchers in the future.

Looking forward to hearing from you 👍

(cc @huntr-helper)

WYSIWYG Editor: Clean Styles from Word

Users are pasting preformatted text from Word and other sources and this always comes with a lot of baggage as we know (mostly inline style attributes, but also useless <div> wrapper etc.)
Pasting with Ctrl+Shift+V helps a bit, but still comes with a lot of crap (like nbsp;)

image

Summernote WYSIWYG editor has a cleaner plugin https://github.com/DiemenDesign/summernote-cleaner and if AtroCore exposes their config to the AtroCore config and admins were able to tweak that a bit what goes in, that would be wonderful.

    cleaner: {
      keepHtml: true,
      keepTagContents: ['span'], //Remove tags and keep the contents
      badTags: ['applet', 'col', 'colgroup', 'embed', 'noframes', 'noscript', 'script', 'style', 'title', 'meta', 'link', 'head'], //Remove full tags with contents
      badAttributes: ['bgcolor', 'border', 'height', 'cellpadding', 'cellspacing', 'lang', 'start', 'style', 'valign', 'width', 'data-(.*?)'], //Remove attributes from remaining tags
    }

could also help with this part:

sanitizeHtml: function (value) {
if (value) {
value = value.replace(/<[\/]{0,1}(base)[^><]*>/gi, '');
value = value.replace(/<[\/]{0,1}(script)[^><]*>/gi, '');
value = value.replace(/<[^><]*(onerror|onclick|onmouseover|onmousedown|onmouseenter|onmouseout|mouseleave|onchange|onblur)=[^><]*>/gi, '');
}
return value || '';
},
- maybe :)

Thanks for considering.

Templates and lightncandy version

Hi,
I was setting up a template for products (I looked up the EspoCRM example), unfortunately there is some discrepancy with the versions and there is no output.

This pulls in the latest lightncandy version of the 0.x branch (0.95)

"zordius/lightncandy": "~0.21",

And here the file is referenced in all lower case (but it's LightnCandy.php in v0.95 https://github.com/zordius/lightncandy/blob/v0.95/src/LightnCandy.php)

require('vendor/zordius/lightncandy/src/lightncandy.php');

Should I just install 0.22 instead? But I don't want it to be overwritten with the AtroPIM updates :)

Category import error

Hi,
when i am trying to import categories getting the following error.
An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction.
what is the meaning of this error? and how should i overcome this issue?
Thank you

Content Width in "New Products" View missing

(Latest version)

Steps to reproduce:

  1. Hide right panel in Products view (or any other Entries view)

image

  1. Create New Product (Entry)
  2. Main Content area width is not calculated.

image

This affects all other views, not only Products!

Can not update core to newest version

AtroСore: 1.5.80
Ubuntu 20.04.6 LTS

/var/www/my.pim-project# php composer.phar update
or
/var/www/my.pim-project# php composer.phar self-update
or
via Module-Page
nothing works for me. Any idea/
Thanks in advance.

10.08.2023 12:16:08 | Loading composer repositories with package information
10.08.2023 12:16:10 | Creating restore point
10.08.2023 12:16:38 | Updating dependencies
10.08.2023 12:16:46 | Nothing to install or update or delete
10.08.2023 12:16:46 | Generating autoload files
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
10.08.2023 10:16:46 | Clearing cache
10.08.2023 10:16:47 | Done!

Bad server response after added a new language

Apache version: Apache/2.4.53
PHP version: 7.4.29
MySQL version: 10.4.25-MariaDB
Database Charater set : utf8mb4_general_ci
FTP version: 1.0.49
SSH Port: 22778
MySql Port: 3306
Web Servers: nginx-apache

Setting>administration>language> : added language Spanish:spain

logs: /data/logs/atro-2022-05-31.log
[2022-05-31 03:06:11] Log.ERROR: PDO Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY'. For query 'INSERT INTO locale (id, name, language, date_format, time_zone, week_start, time_format, thousand_separator, decimal_mark) VALUES ('1', 'Main', 'en_US', 'DD.MM.YYYY', 'UTC', 'monday', 'HH:mm', '.', ',')' [] []
[2022-05-31 03:08:51] Log.ERROR: API [GET]:/api/v1/Settings, Params:Array ( ) , InputData: - SQLSTATE[42S22]: Column not found: 1054 Unknown column 'measure.name_es_es' in 'field list' [] []
[2022-05-31 03:08:51] Log.ERROR: Display Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'measure.name_es_es' in 'field list', Code: 42S22 URL: /api/v1/Settings [] []

This issue also existing when add any other language when I tried to install language

The log tells SQLSTATE Maybe is MariaDB not capable for Atrocore, but atrocore installation without any problem

Bug: en_US language is requiered by default

In our case, we do not use en_US as UI language. Instead, we use en_GB and de_DE. With en_GB as default.

First is, there are no translations in Translation table for en_GB it would be nice, if you could provide this.

More of a problem for us is, that you have set en_US as requiered in atrocore/app/Espo/Resources/metadata/entityDefs/Translation.json
This makes it impossible to completely change the UI to en_GB and remove en_US. After doing so, it is impossible to create new labels, because en_US is required.

The simplest solution would be, to remove the required on en_US.
Better solution would be, to set the required language according to the main UI language.

Creating relation on non-hierarchical entity does not create inherited relations on foreign hierarchical entity

I have the following entity structure:
Entity A (hierarchical):
Item 1 (Top-Level)

  • Item 2 (Child-Item)

Entity B (non-hierarchical, normal Entity):
Item 3

Relationship n:m between Entity A and Entity B.

When I create a relationship between Item 1 and Item 3 from Item 1, the relationship is also added via inheritance on Item 2.
In the code this happens after the relationship is created:
$this->createPseudoTransactionLinkJobs($id, $link, $foreignId);

This works absolutely fine and is the expected behaviour.

When I create a relationship between Item 1 and Item 3 on the page from Item 3, the relationship is NOT added via inheritance on Item 2. This is because the method linkEntity in the Record.php is called directly and no createPseudoTransactionLinkJobs is called.

A possible fix would be to also call the createPseudoTransactionLinkJobs if relationships for hierarchical entities are created starting from the foreign non-hierarchical entity.

Export-job visible even when access is disabled in roles

Hello
I have found that even if you deny (disable) access to export-job, in settings of a role to a user, the user still has access.
Can anyone confirm if there is a bug or what?
My scenario is that i made a role that only has "readonly" access to products, and therefore disabled all 4 related settings to import and export.
All import and export menus and access was disabled as designed, except export-job, is still there in readonly-mode.

Related fields not displayed in table layout (list small)

I tried to implement associated products into the product layout but found it does not display fields which are "Links" to related entities.

Layout designer:
image

Missing two fields:
image

Its not working for either the "out of the box" associated products nor if i rebuild it with an own entity as shown in the screenshots.

Other fields working properly adding them into the layout.

Edit:
It only affects the "List small" layout, others working fine:
List
image
Details
image

Amount of "Success" Export/Import Jobs to be stored, is always +1

Hello,
Both Import and Export have this problem.
Amount of Success Export/Import Jobs to be stored is always one more than the setting: "Amount of "Success" Export Jobs to be stored"
If you set it to 1 you get 2 jobs, if it´s set to 10 you get 11.
You can´t set it to 0, so I can´t make it so that only one successful job is left.

Something I´m doing wrong or is there a little bug hiding somewhere?

exception thrown when generating a PDF with PDF Generator module

Hello,
I'm getting an error when I try to generate a PDF using the built-in template (or any other template I tried to create).
In the error log I see this exception thrown:
Uncaught Exception Error: "Call to a member function close() on null" at /public_html/vendor/atrocore/pdf-generator/app/Services/ChromeBrowser.php line 131 {"exception":"[object] (Error(code: 0): Call to a member function close() on null at /public_html/vendor/atrocore/pdf-generator/app/Services/ChromeBrowser.php:131)\n[previous exception] [object] (RuntimeException(code: 0): Chrome process stopped before startup completed. Additional info: sh: 1: exec: google-chrome: not found at /public_html/vendor/chrome-php/chrome/src/Browser/BrowserProcess.php:410)"} []

Any ideas?

Session Management Issues. Actions in one account affect other accounts

There is an issue that if multiple people are working in atro, actions from one user affect other users. If user 1 makes an update the results in items being unselected in a list (mass update), then any selections of the same type made by user 2 in their session are deselected.

This happens on products, so if both users are updating products at the same time. We have tested with categories selected and mass update on products, but the categories were not deselected. Both users have their own account and have logged in seperately.

Video attached shows the issue happening

20230706_115620.1.mp4

Add `RewriteBase /` to htaccess

To run AtroPIM I need to change the .htaccess after every update and add back RewriteBase / else it wouldn't run.

It should not affect other environments, since it seems to be a standard setting for Wordpress that's supposed to run everywhere.

RewriteEngine On
RewriteBase /

Bug

When you connect several languages, then when creating a catalog there are no name fields with these languages. And there is no saving, since the field is required in all languages.

False Positive Asset Duplicates on Upload

Initially I set Asset Duplicates to Not allow, check by file content

After updating from atrocore/core (1.2.5 => 1.2.30) I couldn't upload files over 2MB.
I got an "Error 400: Such asset already exists." error on this endpoint: /api/v1/Attachment/action/CreateByChunks

That means that the md5 hash of the file is the same - but it was always a different file a bit larger than 2MB and smaller than 4MB.

Long story short something is going on around here:

$md5 = '';
file_put_contents($filePath, '');
foreach ($files as $file) {
$md5 = md5($md5 . $file);
file_put_contents($filePath, file_get_contents($dirPath . $file), FILE_APPEND);
}
$attachment->md5 = $md5;

These are two different files that I uploaded:

image

and

image

They both have the same hash as another file already in the database.

the hash is the same, because it consists only of two chunks with the same filename (and the first iteration of $md5 = '')

here is how I debugged it (like a caveman ^^)

    $GLOBALS['log']->debug('$filePat: ' . $filePath);

    $md5 = '';
    file_put_contents($filePath, '');
    foreach ($files as $file) {
        $md5 = md5($md5 . $file);
        $GLOBALS['log']->debug('$file: ' . $file);
        $GLOBALS['log']->debug('$md5: ' . $md5);
        file_put_contents($filePath, file_get_contents($dirPath . $file), FILE_APPEND);
    }

    $attachment->md5 = $md5;
    $attachment->storageFilePath = $destPath;
    $attachment->storageThumbPath = $this->getRepository()->getDestPath(FilePathBuilder::UPLOAD);
    $GLOBALS['log']->debug('$attachment: ', (array) $attachment);

here is a log:

[2021-05-25 21:24:53] Log.DEBUG: $destPath: 06lsx/xjzn3/8tonu/3itw6/zwvcd/4q5sp [] []
[2021-05-25 21:24:53] Log.DEBUG: $filePat: upload/files/06lsx/xjzn3/8tonu/3itw6/zwvcd/4q5sp/rot.png [] []
[2021-05-25 21:24:53] Log.DEBUG: $file: 0 [] []
[2021-05-25 21:24:53] Log.DEBUG: $md5: cfcd208495d565ef66e7dff9f98764da [] []
[2021-05-25 21:24:53] Log.DEBUG: $file: 2097152 [] []
[2021-05-25 21:24:53] Log.DEBUG: $md5: c78f7d2f1137d0cdcd2865b9804a26a6 [] []
[2021-05-25 21:24:53] Log.DEBUG: $attachment:  {"chunkId":"ea9907089e1afa36b7cba91345aaae73",...} - Such asset already exists. [] []
[2021-05-25 21:24:53] Log.ERROR: Display Error: Such asset already exists., Code: 400 URL: /api/v1/Attachment/action/CreateByChunks [] []
[2021-05-25 21:26:22] Log.DEBUG: $destPath: 06lsx/xjzn3/8tonu/3itw6/zwvcd/apt8a [] []
[2021-05-25 21:26:22] Log.DEBUG: $filePat: upload/files/06lsx/xjzn3/8tonu/3itw6/zwvcd/apt8a/blau.png [] []
[2021-05-25 21:26:22] Log.DEBUG: $file: 0 [] []
[2021-05-25 21:26:22] Log.DEBUG: $md5: cfcd208495d565ef66e7dff9f98764da [] []
[2021-05-25 21:26:22] Log.DEBUG: $file: 2097152 [] []
[2021-05-25 21:26:22] Log.DEBUG: $md5: c78f7d2f1137d0cdcd2865b9804a26a6 [] []
[2021-05-25 21:26:22] Log.DEBUG: $attachment:  {"chunkId":"065dc8c83dd368069b73341c7c1f9b11",...} - Such asset already exists. [] []

I didn't test with 3 chunks per file (file >4MB && <6MB) and I didn't test with notAllowByContentAndName.

I suppose the foreach loop should be something like this:

	$md5 = '';
    foreach ($files as $file) {
		$md5 .= md5($md5.md5_file($dirPath . $file)); // Hash the md5 of each chunk
		// or maybe cleaner:
		$md5Arr[] = md5_file($dirPath . $file);
        file_put_contents($filePath, file_get_contents($dirPath . $file), FILE_APPEND);
    }

	$attachment->md5 = $md5;

	// or:
	$attachment->md5 = md5(implode('',$md5Arr));
	
	// or:
	// Hashing the whole file, but with a 50+ MB file this will be too slow
	$attachment->md5 = md5_file($filePath);

I guess to md5 the chunks seems to be the best way (see also: https://www.php.net/manual/en/function.md5-file.php#94494)

But I might be wrong here.

What do you think?

Edit: added the . to $md5 .= md5(...

File Permissions with new uploads

After updating to atrocore 1.1.* (from 1.0.* from beginning of 2021), I noticed that stored files got moved from the /data/* folder to /upload/* - somehow I had some issues and I had to manually move the files, that worked. But now every new file/image I upload has issues. No thumbnails are being created and download is not possible. It looks like the files are ending up on the server with file permission 0600.
After I change the permission manually I can access the original file in /upload/file/* but I guess thumbnails are created while uploading, so they are still missing.

Any idea how to fix this or is that work in progress?

portal is not working

when i create a portal page,in this portal user page suppose i will create a brand,in this create brand page we click access management field option that will be shown 500 internal server error and do not create brand in this portal page.

Your software is no longer open source... its restrictive.

https://github.com/atrocore/atrocore/blob/master/README.md?plain=1#L5

A license either is an open-source license, or it restricts usage of the software to certain regions or types of usage. You cannot have both. (See criteria 1 & 5 here: https://opensource.org/osd)

That said, it is not your responsibility as the software creator to forbid people the usage when the law already forbids the usage.
That serves no purpose (law overrides license, always) and would impose an unnecessary restriction when the law changes.
It's the responsibility of the users of software to obey the law and not use unlawful tools.

I'll go one step further and say that from an ethical standpoint, it is very much your responsibility to make your software as free as possible, to help people keep (or regain) the control over their own computing.

You're gonna have to decide whats more important, anti-russia virtue signaling, or remaining true to the nature of open source. Either way, you've been warned.

Installation fails "require.atrocore/core : unbound version constraints (*) should be avoided"

Hi

Following the instructions: https://github.com/atrocore/docs/blob/master/atrocore/admin-guide/installation.md
Step 3.2 fails

did another installation Tuesday last week with no issues.

Composer diagnose
Checking composer.json: WARNING
No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.
require.atrocore/core : unbound version constraints () should be avoided
require.atrocore/pim : unbound version constraints (
) should be avoided
require.atrocore/dam : unbound version constraints () should be avoided
require.atrocore/export-feeds : unbound version constraints (
) should be avoided
require.atrocore/import-feeds : unbound version constraints (*) should be avoided
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: [Composer\Downloader\TransportException] The "http://repo.packagist.org/packages.json" file could not be down loaded: failed to open stream: Connection timed out
Checking https connectivity to packagist: [Composer\Downloader\TransportException] The "https://repo.packagist.org/packages.json" file could not be do wnloaded: failed to open stream: Connection timed out
Checking github.com rate limit: OK
Checking disk free space: OK
Composer version: 1.10.1
PHP version: 7.4.3
PHP binary path: /usr/bin/php7.4
OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020

Can´t add or change Classification on Product

Hello
When I try to add or change Classification on a product I get:

Error 200: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction

Trying to mass-update or if I try to change by import, if I have the Classification field connected, I get the same error.

If I try to create the product with import and have the Classification connected, I get
Import\FieldConverters\LinkMultiple::getForeignEntityName(): Argument #1 ($config) must be of type array, string given, called in /var/www/pim2/vendor/atrocore/import-feeds/app/FieldConverters/LinkMultiple.php on line 40

If I go to the Classification and add the product from there, it works fine.
If I select a Classification before i save when I create a new product, it works.
If I delete Classification from edit product, it works, but can´t add class again.

Same behaviour exists on 2 different sites.

I have tried install latest patches, reboot server, look in the database for any locks, (timeout is set to 50sec).

Anything else I can try to troubleshoot this?

Provide alternative Access to `HTTP_AUTHORIZATION` Header

PHP_AUTH_USER/PWD is missing here (

$authUsername = $req->headers('PHP_AUTH_USER');
) when PHP runs as CGI/FastCGI, even when adding Headers back in the .htaccess file like this: SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

A fallback could be something like this:

        if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
           list($authUsername, $authPassword) = explode(':' , base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6)));
        }else{
            $authUsername = $req->headers('PHP_AUTH_USER');
            $authPassword = $req->headers('PHP_AUTH_PW');
        }

As described here: https://github.com/atrocore/atropim/discussions/113#discussioncomment-630207

Migrate Pricing 1.6.17 -> 1.6.18 Fail

Failed! Call to undefined method Pricing\Migrations\V1Dot6Dot18::updateComposer()

Any idea to fix this issue?

AtroСore: 1.5.80
PIM: 1.7.35
Ubuntu 20.04.6 LTS

error installing atroPIM and atroDAM with demo data

hi...
when im installing with demo data either atroPIM or atroDAM its give me error 500, but if im installing without demo data everything works...is it a bug or im doing something wrong.
i follow your installation instruction
ubuntu 20.04
php 7.4
mysql 5.7

many thanks

Filter Logic is not consistently using AND

There is no option to allow filters on the same field to be added with AND. We have a scenario where we pick products by brand with a word in the name. That may return 50 products. In that set there may be 15 we do not want to pick which have a common word. If we add another filter on name, the filter automatically gets added with OR. Rather than reduce the set, this results in a larger set or products returned.

The user should have the ability to select whether the filter uses AND or OR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.