-
Notifications
You must be signed in to change notification settings - Fork 169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New System App Module for easy file systems access #663
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR needs some work before the real code review can conducted.
src/System Application/App/File System/permissions/FileSystemAdmin.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemEdit.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemEdit.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemObjects.PermissionSetExt.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemObjects.PermissionSetExt.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystemImp.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystemImp.Codeunit.al
Outdated
Show resolved
Hide resolved
Awesome, thanks! And now that we have an idea, could you create the GitHub issue linked to the idea? Issues -> New issue -> Implement BC Idea. Then I'll approve it and we should have the proper work items in place 🥳 |
I am having one final round of reviewing and testing planned for Tuesday the 17th of December. After that, we should hopefully have the reviews needed to merge this one 🙏 |
src/System Application/App/File System/src/Account/FileAccount.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccount.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccount.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccount.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Lookup/FileAccountContent.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Scenario/FileAccountScenario.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Scenario/FileAccountScenario.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Scenario/FileScenario.Table.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Scenario/FileScenarioImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
@StefanMaron I fixed the most of your findings. Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Temporary Property for a
TableType = Temorary;
Table- I can see that this can increase readability so I dont mind it being specified "twice" but in that case it should be done that way everywhere, on all variables and all pages that use those tables.
- There where a few typos and a few other smaller things I missed the first time
- Tested the runmodal with temp tables, seems like its not needed
- Tagged @JesperSchulz twice to get his view as well
But dont get me wrong, those are just minor things :) looks really great!
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Lookup/FileAccountBrowser.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Lookup/FileAccountBrowser.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Lookup/FileAccountBrowserMgt.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Scenario/FileAccountScenario.Table.al
Outdated
Show resolved
Hide resolved
cf85175
to
3f59121
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A little bit of work on the terminology (will get back with suggestions) and a bug fix, and I think we can merge. Will do some more testing Tuesday, get back to you, and we'll wrap it up 🥳
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccounts.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccounts.Page.al
Outdated
Show resolved
Hide resolved
…Wizard.Page.al Co-authored-by: Jesper Schulz-Wedde <[email protected]>
…Impl.Codeunit.al Co-authored-by: Jesper Schulz-Wedde <[email protected]>
src/System Application/App/File System/permissions/FileSystemObjects.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccounts.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystem.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystem.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystemImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Lookup/FileType.Enum.al
Outdated
Show resolved
Hide resolved
…s.Page.al Co-authored-by: Darrick <[email protected]>
…e file handling procedures
…ptions in app.json files
…aces and references
/// Provides functionality to work with file accounts. | ||
/// </summary> | ||
|
||
codeunit 9450 "File Account" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally I think all of these objects should have been called "Storage Account" etc., but the renaming will be extensive, so let's settle for File Account. It's not like it's wrong...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy with the state of this PR. Now we just need one more from the product group to be happy 😊
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just the permission fix, otherwise all good.
table "File Account" = X, | ||
table "File Account Content" = X, | ||
table "File Account Scenario" = X, | ||
table "File Scenario" = X; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add the following codeunits here and remove their inherent entitlement/permissions.
"External File Storage"
"File Account"
"File Pagination Data"
"File Scenario"
Reason for this is because they're the facade layers and should still be controlled via permissions.
The File Storage
permission sets also need to be added to the following, otherwise we will get permission issues when we get a SaaS deployment.
The "File Storage - Read"
should be added to src/System Application/App/Permissions/SystemApplicationRead.PermissionSet.al
The "File Storage - Edit"
should be added to src/System Application/App/Permissions/SystemApplicationEdit.PermissionSet.al
The "File Storage - View"
should be added to src/System Application/App/Permissions/SystemApplicationView.PermissionSet.al
The "File Storage - Objects"
should be added to src/System Application/App/Permissions/SystemApplicationObjects.PermissionSet.al
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@darjoo while you're looking at permissions.
What about entitlements.
a delegated admin has the entitlement for e-mail admin.
Wouldn't it be logical to add the File Storage Admin
there, too?
Migration of microsoft/ALAppExtensions#23225
Now that we have made several clients Universal code ready.
One of the main problems turned out to be the replacement of the file record and the file object (File.Create, File.Exists).
Some of our customers now use Azure Blob Service from the System app. Others don't have a good internet and now use a local microservice with REST API, others use Azure File Shares.
The problem is that every integration is different. I think many other partners will have the same problem.
To simplify access I have adopted the email module and created new file accounts.
With just one codeunit, a developer can now connect to various file services without having to know how they actually work. The code unit "File System" delviers everything taht is needed.
An additional PR contains three connector apps:
microsoft/ALAppExtensions#23225
This Apps will conenct:
All three service can be access over one unified interface!
New provider in the future could be:
An example that shows how simple it is to use the new modules can be found here:
https://github.com/IceOnly/BC_FileSystem_Example
But before I go round the whole thing, I'm interested in whether there is any interest in the module at all.
Here are some Screenshots:
I have decided in favour of some restrictions. Paths must not start with a /. The only supported path separator is /. If services that require a \ are to be connected, this must be translated by the connector app.
These restrictions should ensure that the file service can be exchanged without upgrading data.
Assigned Workitems:
Fixes #2418
Fixes AB#559148