Re: Loading Historical Floating Rate Periods

2021-01-04 Thread David Yahalomi
Hey Bharath,

Thanks for the response.

I've created this PR on our fork -
https://github.com/hypercore-ai/fineract/pull/10/files

It enables the submission of historic rates with a flag on the floating
rate PUT request.
As you've mentioned, the actual work here is testing the effect of such a
change.
Do you know if the integration tests are currently testing the scenarios
you've specified?

If not, we will soon manually test some of these cases.

Best,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Mon, Jan 4, 2021 at 4:20 PM Bharath Gowda  wrote:

> Hi David,
>
> Sounds interesting and a good feature to be unlocked, validation could be
> added either because of all the scenarios not tested yet, or there could be
> specific scenarios not handled at that time.
>
> We will have to test as much as scenarios as possible to check if there
> are any side effects
>
> Following are some  important scenarios that could be tested
> 1. Rescheduling of loans and repay/undo repay scenarios.
> 2. Interest accruals behaviors on daily interest calculation configuration
> 3.Tranche loans scenarios
> 4.Penalty charge scenarios
>
> If things are still good, we could push the changes back to the upstream
> codebase, so that all the people of the community could be benifited from
> the feature.
>
>
> Regards,
> Bharath
> Lead Implementation Analyst | Mifos Initiative
> Skype: live:cbharath4| Mobile: +91.7019635592
> http://mifos.org  <http://facebook.com/mifos>
> <http://www.twitter.com/mifos>
>
>
> On Sun, Jan 3, 2021 at 9:34 PM David Yahalomi  wrote:
>
>> Hello all,
>>
>> In my current work with Fineract, I've noticed that there is a constraint
>> in Fineract that prohibits the submission of past periods.
>>
>> Does anyone know of a reason for that?
>> From my testing, after disabling this validation check, it seems that the
>> rest of the code handles that scenario quite well. Any loans with interest
>> re-calculation will be updated as it should.
>>
>> I'd love to hear your thoughts.
>>
>> Best,
>>
>> David Yahalomi
>> Co-Founder
>>
>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>> mobile: + 972 52 817 9787
>> email: da...@articode.co
>>   <https://articode.co>
>> ᐧ
>>
>


Loading Historical Floating Rate Periods

2021-01-03 Thread David Yahalomi
Hello all,

In my current work with Fineract, I've noticed that there is a constraint
in Fineract that prohibits the submission of past periods.

Does anyone know of a reason for that?
>From my testing, after disabling this validation check, it seems that the
rest of the code handles that scenario quite well. Any loans with interest
re-calculation will be updated as it should.

I'd love to hear your thoughts.

Best,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>
ᐧ


Re: Fineract: update/delete note is broken

2020-09-29 Thread David Yahalomi
Thank Petri for the quick response and fix!

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>


On Mon, Sep 28, 2020 at 11:55 AM Airsay Longcon 
wrote:

> +1 for adding notes to Savings Accounts
>
> On 28 Sep 2020, at 06:48, Petri Tuomola  wrote:
>
> Ok - this is now fixed in https://github.com/apache/fineract/pull/1353,
> so when that gets merged update/delete of notes should work.
>
> Looks like adding notes to Savings accounts has not been implemented - I
> wonder why? It looks trivial to implement using the same pattern, so I
> might add it once the above PR has been merged.
>
> Regards
> Petri
>
> On 27 Sep 2020, at 8:31 PM, Petri Tuomola  wrote:
>
> Hi
>
> Yes, looks like the JPA queries used to look up the note for update /
> delete are broken - that’s why they never find the note to be updated.
>
> I’m not sure how this has ever worked - but I can send a PR later tonight
> to fix this. Will also add some integration tests to ensure we catch this
> next time.
>
> Regards
> Petri
>
>
> On 27 Sep 2020, at 4:50 PM, David Yahalomi  wrote:
>
> Hey All,
>
> IDK if that was always the case, but it seems like update and delete of
> client note is broken.
> I think the other resources are in the same condition.
> From what I can tell, the fault is in the NoteRepository. Could someone
> confirm this issue?
>
> I looked in the JIRA and could not find a ticket about it so I am not sure
> if this is a less used feature or what.
> I was able to reproduce it both on our FaaS and on the more up to date,
> fineract.dev deployment so I think it has been there for quite some time.
>
> Would appreciate any feedback.
>
> Thanks,
>
> David Yahalomi
> Co-Founder
>
> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
> mobile: + 972 52 817 9787
> email: da...@articode.co
>   <https://articode.co/>
>
>
>
>


Fineract: update/delete note is broken

2020-09-27 Thread David Yahalomi
Hey All,

IDK if that was always the case, but it seems like update and delete of
client note is broken.
I think the other resources are in the same condition.
>From what I can tell, the fault is in the NoteRepository. Could someone
confirm this issue?

I looked in the JIRA and could not find a ticket about it so I am not sure
if this is a less used feature or what.
I was able to reproduce it both on our FaaS and on the more up to date,
fineract.dev deployment so I think it has been there for quite some time.

Would appreciate any feedback.

Thanks,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>


Re: Fineract CN Improvement Proposal

2020-09-27 Thread David Yahalomi
Hey,

Just wanted to chime in as it is a topic we've talked about multiple times
internally.
There are a couple of drawbacks to using a microservice architecture that I
think we should address. The first of which is the difficulty in managing
the codebase and the deployed environment.

Up to now, I feel like CN has failed to address those difficulties in a
good way.
At the moment, there is no way to run Fineract CN without a bloated
Kubernetes / Docker Compose setup. It also takes a decent amount of time
just to startup everything. Even if you are using a minimal set
configuration.
What I would expect is to have the same experience as Serverless delivers.
Using something like serverless would definitely support the composability
use case that is definitely there.

Also, I think that co-existence with Fineract, should be a priority.
If I were to start from scratch, I would go in a path that transforms
Fineract to Fineract CN by doing the required work to split the
different modules of Fineract to microservices, but without changing the
logic or the API that is being exposed.
An example of that would be to take the users module
(org.apache.fineract.useradministration) of Fineract and turn it into a
microservice but the catch here would be that once you deploy this new
version, it migrates the related tables to the new microservice data source
(Postgres schema?) and it takes over the /users API.

This way, organizations with existing Fineract deployments could also be
part of this new approach and could contribute their own use cases and
requirements to the mix.

Adding to this approach, I think we should consider implementing those new
microservices with the language that has the most amount of open-source
attention, which is Javascript or better yet, Typescript. We're for one,
developing all of our services on top of Fineract with Typescript and get
to enjoy the rich open-source ecosystem around it that I feel like is
lacking in Java.
But that's a whole other topic which I think might have way more push back.

Best,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>


On Sun, Sep 27, 2020 at 2:27 PM Juhan Aasaru  wrote:

> Hi!
>
> Fineract-CN hasn't managed to get a community that would actively push it
> forward.
> It could happen in the future or it could never happen.
>
> Anyway - rather than changing CN to a radically different direction I
> would rather advise
> to gather interested parties together and start from a clean perspective
> and name it
> something else - Fineract NS (New Start) or whatever.
> This doesn't mean it couldn't borrow code from Fineract-CN if needed.
> Also we have the ability to spin up new apache/fineract-* Github
> repositories whenever needed.
>
> The new start could only work if there is critical mass of interested
> parties on board from
> the start and they work together. If there is only one company outsourcing
> its work
> (without others having much say what technologies to use etc) then it
> won't be the apache
> way to build new software and thus not a very sustainable model.
>
> Juhan
>
>
> Kontakt James Dailey () kirjutas kuupäeval L, 26.
> september 2020 kell 19:30:
>
>> Thanks Saransh for bringing this conversation forward and on-list.  I
>> believe we need more ideas about fineract-CN, and I agree that a key
>> 'story' is accessibility of the code to developers and avoiding the
>> monolithic code base trap.
>>
>> I'll note that recently fineract 1.4 was released, a major improvement.
>> That needed our strong focus and is a community success.
>>
>>  fineract-CN has not yet had the same level of focus, but I believe that
>> it should.
>>
>> It's important that we also have those with fineract CN in production to
>> help drive the roadmap. There are several and some of those folks have
>> proposed new directions as well.  So, this is an active discussion.
>>
>> Previously we discussed on list the importance of the 'minimal set' of
>> microservices.  Can you say whether you have the same list or a smaller
>> set? Or larger set as the required microservices for a 'release'?
>>
>> Or how should we think about composability?
>>
>> In terms of your re-architecting ideas, I look forward to learning more.
>>
>> @jdailey
>>
>> On Fri, Sep 25, 2020, 3:44 AM Saransh Sharma 
>> wrote:
>>
>>> Hey folks out there , this email is intended for Fineract CN
>>> improvement, before setting the ground i would like to clear up a few
>>> things ; one this is not a separate project , this concerns overall change
>>> from ground up and possible variation of the existing project out there.
>>>

Re: Blog post featuring Fineract and the upcoming ApachCon Fineract Track

2020-09-27 Thread David Yahalomi
Thanks, Javier, Ankit, and Ed!

Glad to hear that the subject resonated with you and that there is a need
for more content like that.
One of the goals I had with this post is to appeal for both technical and
non-technical c level layers of management.
The reasoning for that is that I feel like most execs we engage with,
hasn't heard about Fineract as a solution for their institution.

I would love to hear your feedback regarding this goal, do you think it was
too technical? or should I even go deeper?

Best,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>


On Thu, Sep 24, 2020 at 11:06 PM Ed Cable  wrote:

> Nice post David! I maxed out my hand claps for you.
>
> Echoing Ankit, I will try to get more blog content out there from Mifos on
> the use cases of Fineract led by partners/users.
>
> Ed
>
> On Thu, Sep 24, 2020 at 10:28 AM Ankit Muellner 
> wrote:
>
>> This is nice David. Hope to see more blogs on different use cases on
>> Fineract.
>>
>> On Tue, 22 Sep 2020 at 12.00, David Yahalomi  wrote:
>>
>>> Hello Devs!
>>>
>>> As Javier has published on this mailing list in a past correspondence,
>>> next week ApacheCon will feature Fineract on their yearly convention, now
>>> from home!
>>>
>>> In order to attract some external attention, I've written a blog post on
>>> how to create a simple loan origination flow with Fineract as the loan
>>> management system.
>>>
>>> The post is available here -
>>> https://medium.com/@davidyahalomi/loan-origination-done-right-with-fineract-519e8cefac5?sk=d7bc9cee15ac5772ee0173998b641e9b
>>>
>>> I've also made some social marketing attempts by posting to Twitter and
>>> LinkedIn.
>>> If you feel like helping spread the word, please
>>>
>>>1. Clap on the post
>>>
>>> <https://medium.com/@davidyahalomi/loan-origination-done-right-with-fineract-519e8cefac5?sk=d7bc9cee15ac5772ee0173998b641e9b>
>>>(you can go up to 50 claps by keeping the clap button pressed)
>>>2. Like and retweet the announcement tweet
>>><https://twitter.com/DavidYahalomi/status/1308332035673591808>.
>>>3. Like and share the LinkedIn post
>>>
>>> <https://www.linkedin.com/posts/david-yahalomi-441b3863_loan-origination-done-right-with-fineract-activity-6714105088559853568-d8L_>
>>>.
>>>4. Share on any other networks you feel like sharing it on :)
>>>
>>> Also, let me know if you would like to see more features of Fienract and
>>> Mifos covered in future posts.
>>> As I've mentioned, the goal is to help the community grow and share
>>> what it does in more ways so that we would ultimately have much better
>>> tools and products.
>>>
>>> Thanks ahead!
>>>
>>> David Yahalomi
>>>
>>>
>>>
>>> --
>> Ankit Müllner Muellners Europe +4581929792 Sent from my iPad. This mail
>> is governed by Muellners® IT policy. The information contained in this
>> e-mail and any accompanying documents may contain information that is
>> confidential or otherwise protected from disclosure. If you are not the
>> intended recipient of this message, or if this message has been addressed
>> to you in error, please immediately alert the sender by reply e-mail and
>> then delete this message, including any attachments. Any dissemination,
>> distribution or other use of the contents of this message by anyone other
>> than the intended recipient is strictly prohibited. All messages sent to
>> and from this e-mail address may be monitored as permitted by applicable
>> law and regulations to ensure compliance with our internal policies and to
>> protect our business. E-mails are not secure and cannot be guaranteed to be
>> error free as they can be intercepted, amended, lost or destroyed, or
>> contain viruses. You are deemed to have accepted these risks if you
>> communicate with us by e-mail.
>>
>
>
> --
> *Ed Cable*
> President/CEO, Mifos Initiative
> edca...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>
> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
> <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>
>


Blog post featuring Fineract and the upcoming ApachCon Fineract Track

2020-09-22 Thread David Yahalomi
Hello Devs!

As Javier has published on this mailing list in a past correspondence, next
week ApacheCon will feature Fineract on their yearly convention, now from
home!

In order to attract some external attention, I've written a blog post on
how to create a simple loan origination flow with Fineract as the loan
management system.

The post is available here -
https://medium.com/@davidyahalomi/loan-origination-done-right-with-fineract-519e8cefac5?sk=d7bc9cee15ac5772ee0173998b641e9b

I've also made some social marketing attempts by posting to Twitter and
LinkedIn.
If you feel like helping spread the word, please

   1. Clap on the post
   
<https://medium.com/@davidyahalomi/loan-origination-done-right-with-fineract-519e8cefac5?sk=d7bc9cee15ac5772ee0173998b641e9b>
   (you can go up to 50 claps by keeping the clap button pressed)
   2. Like and retweet the announcement tweet
   <https://twitter.com/DavidYahalomi/status/1308332035673591808>.
   3. Like and share the LinkedIn post
   
<https://www.linkedin.com/posts/david-yahalomi-441b3863_loan-origination-done-right-with-fineract-activity-6714105088559853568-d8L_>
   .
   4. Share on any other networks you feel like sharing it on :)

Also, let me know if you would like to see more features of Fienract and
Mifos covered in future posts.
As I've mentioned, the goal is to help the community grow and share what it
does in more ways so that we would ultimately have much better tools and
products.

Thanks ahead!

David Yahalomi


Re: [Mifos-developer] Automatic Setup/manage New Tenants on Fineract 1.x

2020-07-16 Thread David Yahalomi
Hey Michael,

You are absolutely correct. The deployment details are crucial. For
offering a production-ready environment going with hosted managed DB on a
known cloud provider is a must IMO. Our FaaS tool uses the most basic
deployment (to keep costs down) - single EC2 instance on AWS that holds
both the Tomcat web server that provides Fineract and a local MySQL server
process that holds all the tenant DBs. As you suggested, we've created a
new Tenant Management Java Resource that just does "create database" and
then runs the migration files on that new tenant. As I said, it works as a
"default" tenant API so authentication is done using Basic auth with a
system user from that tenant.
Do you think that's adequate?

Regarding the connection pool - we hadn't gone and tackled that one yet so
it might just be the connection pool configuration that needs to be
changed, but as far as I have seen, each tenant has it's own pool or at
least it seems this way when you look for open connections on the
MySQL server.

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Thu, Jul 16, 2020 at 2:04 AM Michael Vorburger  wrote:

> On Wed, 15 Jul 2020, 10:02 David Yahalomi,  wrote:
>
>> Hey Jubha and Awasum!
>>
>> We've created FaaS (Fineract as a service) <https://faas.articode.co/>
>> and part of that was automating the creation of new tenants. Our service is
>> public and meant for development purposes so the API to create new tenants
>> did not include any security considerations.
>> That being said, the front end site does not send requests directly to
>> Fineract but rather goes through an AWS lambda function (that could
>> potentially check for permissions/credits and whatnot) and it handles
>> calling Fineract.
>>
>
>> We have created a system user on the "default" tenant and it is used to
>> authenticate against this new "create tenant" API.
>> We would love to contribute this process if we could figure out a way to
>> deliver that functionality without too many moving parts. ideally, the
>> current Fineract server should handle the whole process on its own.
>>
>
> The crux I think is that creating an additional DB for a new Tenant is
> somewhat dependent on the details of the actual deployment...
>
> How do you create a new Tenant DB? Just SQL "create database newtenant;",
> OR using an API of a managed database by your favorite Cloud provider?
> (E.g. https://www.fineract.dev uses https://cloud.google.com/sql, but
> YMMV, fair enough.)
>
> But anyone motivated to do this sure could still make a start with
> contributing a Pull Request that adds a new Tenant Management Java Resource
> class eyc. for API which, for now, does the SQL (and that could later be
> extended for specific managed DBs in cloud). Go for it!
>
> Another consideration is scaling of such a setup. At the moment, Fineract
>> handles each tenant with it's own DB connection. That means that many
>> resources are allocated at the booting stage of Fineract server but
>> potentially never used (on less active tenants). This is something that we
>> should potentially figure out before offering production-grade deployment
>> of Fineract as a service.
>>
>
> I'm not sure I understand what exactly you mean here (just set the
> connection pool configuration appropriately, no?), but Pull Requests with
> any suggested Improvements to connection handling are always welcome, of
> course.
>
> Best,
>>
>> David Yahalomi
>> Co-Founder
>>
>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>> mobile: + 972 52 817 9787
>> email: da...@articode.co
>>   <https://articode.co>
>>
>> ᐧ
>>
>> On Wed, Jul 15, 2020 at 10:27 AM jubha mayala 
>> wrote:
>>
>>> Hi All, I do not remember the name, but some guys from Israel have done
>>> this kind of thing. And they shared here the demo for people to have a look
>>> and test. anybody remembers this please point out their name.
>>>
>>> On Wed, Jul 8, 2020 at 7:08 PM Saransh Sharma 
>>> wrote:
>>>
>>>> Definitely, this could be a bonus if we could do the same for fineract
>>>> cn.
>>>>
>>>> Some thoughts,
>>>>
>>>> Super user can only or special right with 2fa API access.
>>>>
>>>> No delete option
>>>>
>>>> We can use db to be loaded as a service where , flyway migration
>>>> happens real time.
>>>>
>>>> Let me know what you think
>>>>
>&

Re: [Mifos-developer] Automatic Setup/manage New Tenants on Fineract 1.x

2020-07-15 Thread David Yahalomi
Hey Jubha and Awasum!

We've created FaaS (Fineract as a service) <https://faas.articode.co/> and
part of that was automating the creation of new tenants. Our service is
public and meant for development purposes so the API to create new tenants
did not include any security considerations.
That being said, the front end site does not send requests directly to
Fineract but rather goes through an AWS lambda function (that could
potentially check for permissions/credits and whatnot) and it handles
calling Fineract.

We have created a system user on the "default" tenant and it is used to
authenticate against this new "create tenant" API.
We would love to contribute this process if we could figure out a way to
deliver that functionality without too many moving parts. ideally, the
current Fineract server should handle the whole process on its own.

Another consideration is scaling of such a setup. At the moment, Fineract
handles each tenant with it's own DB connection. That means that many
resources are allocated at the booting stage of Fineract server but
potentially never used (on less active tenants). This is something that we
should potentially figure out before offering production-grade deployment
of Fineract as a service.

Best,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Wed, Jul 15, 2020 at 10:27 AM jubha mayala  wrote:

> Hi All, I do not remember the name, but some guys from Israel have done
> this kind of thing. And they shared here the demo for people to have a look
> and test. anybody remembers this please point out their name.
>
> On Wed, Jul 8, 2020 at 7:08 PM Saransh Sharma 
> wrote:
>
>> Definitely, this could be a bonus if we could do the same for fineract
>> cn.
>>
>> Some thoughts,
>>
>> Super user can only or special right with 2fa API access.
>>
>> No delete option
>>
>> We can use db to be loaded as a service where , flyway migration happens
>> real time.
>>
>> Let me know what you think
>>
>>
>>
>> On Wed, 8 Jul 2020, 19:25 Awasum Yannick,  wrote:
>>
>>> Hi All,
>>>
>>> I think it will be a good idea to automate the process of creating and
>>> managing new tenants (DBs) on Fineract 1.x. At the moment, this is done via
>>> manual process and scripts as seen here:
>>> https://mifosforge.jira.com/wiki/spaces/docs/pages/187498786/How+to+Setup+New+Trail+Instance
>>>
>>> Will it be a good idea to automate this process so that each new tenant
>>> is created using say, an API endpoint? Maybe this endpoint will need to be
>>> protected (secure) so that not anyone can create a new tenant? How do we
>>> secure this process?
>>>
>>>
>>> Any thoughts? Are there people who have done things like this before?
>>> and might want to contribute back?
>>>
>>> I created an issue for this:
>>> https://issues.apache.org/jira/browse/FINERACT-1081
>>>
>>>
>>> Thanks.
>>> Awasum
>>>
>> Mifos-developer mailing list
>> mifos-develo...@lists.sourceforge.net
>> Unsubscribe or change settings at:
>> https://lists.sourceforge.net/lists/listinfo/mifos-developer
>
>


Re: Introducing Fineract as a Service

2020-05-05 Thread David Yahalomi
Hey All!

We're almost at a hundred instances so it seems like it is ready to hit the
general public :)
I've written a short blog post to showcase the process of creating an
instance and then I went on to explain a bit on how to create a financing
solution with Fineract.
I think such posts could help with driving more developers to this awesome
community which will, in turn, mean that Fineract will have more use cases,
traction, and contributions that we could all benefit from.
It would help a lot if you could share this post with your peers and even
give a clap (or 50!) in Medium.

The link to the blog post -
https://medium.com/@davidyahalomi/3f38a0bf0a3a?source=friends_link=b0dbc76184e6aa1b026366cb3b6426d8

Thanks a lot for using this service!

Best,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Tue, Apr 14, 2020 at 1:12 PM Daniel Liechtenstein 
wrote:

> Dear Community Members,
>
> I'm happy to share that since my previous mail, more than *60 *unique
> tenants were deployed and I have received great feedback. Thank you all for
> using our FaaS <https://faas.articode.co/> tool.
>
> I would be happy to know if you find it useful or how can we modify it so
> it will better suit the community needs.
>
> Also, we are constantly developing more features and services (such as our
> PCI environment automation) and I am always interested to know if our work
> might aid some of the community needs. I would really appreciate if you
> could find the time and fill this short survey so we could learn more about
> the community needs.
>
> https://articode.typeform.com/to/ZEl3KE
> <https://articode.typeform.com/to/ZEl3KE>
>
> Best wishes,
> --
> Daniel Liechtenstein
> Business Development
> Partner
>
> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
> mobile: + 972 50 848 7788
> email: dan...@articode.co
>
> ᐧ
>
> On Tue, Mar 31, 2020 at 11:06 AM Daniel Liechtenstein 
> wrote:
>
>> Dear Fineract Community Members,
>>
>> My name is Daniel and I'm the VP bizdev of Articode, a software
>> development company located in Israel. I'm happy to be a part of the
>> community and I would like to share with you a cool product that we
>> developed that any of you can use.
>>
>> Fineract as a Service - Automation of Multitenancy
>> <https://faas.articode.co/>
>>
>> We have created a simple form for anyone who wishes to test and try
>> Fineract and the community app of Mifos X.
>> The flow is simple - choose your bank name - upload your logo - enter
>> basic information and that’s it! You will receive an email with your own
>> instance link and unique credentials in about 2 min!
>>
>> Behind the scene, we have automated the entire process of building a new
>> tenant on our Fineract server.
>>
>> Furthermore, we have automated the deployment of Fineract on a PCI
>> compliant environment using CloudForamation, an AWS tool for automating the
>> provision of resources on a cloud environment. The PCI environment is
>> currently not provisioned due to maintenance cost but if any of you would
>> like to learn more you are more than welcome to contact me.
>>
>> You are welcome to try our product and to contact us if you have any
>> questions.
>> I hope you'll find this useful and I hope to share more with you in the
>> near future.
>> Best,
>>
>> --
>> Daniel Liechtenstein
>> Business Development
>> Partner
>>
>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>> mobile: + 972 50 848 7788
>> email: dan...@articode.co
>>
>> ᐧ
>>
>
>
> --
> Daniel Liechtenstein
> Business Development
> Partner
>
> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
> mobile: + 972 50 848 7788
> email: dan...@articode.co
>
>


Re: Invitation to join Open Banking Working Group

2020-03-11 Thread David Yahalomi
Hey Ed,

Please, sign us up.

Thanks,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Wed, Mar 11, 2020 at 3:27 PM Steve Conrad  wrote:

> Thanks Ed. Please add me to the group as well.
> Discourse ID: conradsp
>
> On Wed, Mar 11, 2020 at 12:41 AM Ed Cable  wrote:
>
>> Hi everyone,
>>
>> As you know, as part of our grant from DIAL last year, the Mifos
>> Initiative completed a proof of concept implementation of the UK Open
>> Banking API standard on top of the WS02 API Gateway for Account Information
>> and Payment Initiation requests. These Open Banking APIs are to serve as
>> the Open Banking API layer on top of Fineract but also to replace the
>> self-service APIs and provides secure way for both trusted first party as
>> well as third party apps to connect.
>>
>> I wanted to convene a working group of experts across the community to
>> help advance those efforts as well as formulate a roadmap, explore
>> different API gateways, etc.
>>
>> Some of the next steps we have at the moment are to map out current
>> self-service APIs to the UK Open Banking API standards so our suite of
>> first party apps like our mobile banking, mobile wallet, and online banking
>> apps can connect.
>>
>> I'd also like to discuss creating comprehensive documentation as well as
>> launching a developer portal around these APIs.
>>
>> I would like to use a Discourse group to house the discussion.
>>
>> If you're interested in joining, could you please reply to this mail and
>> also create an account on our Discourse and I'll add you to the group.
>>
>> Best wishes,
>>
>> Ed
>>
>> Here is some of the past discussion on the topic.
>>
>> A couple recent threads on list that covered this topic and I linked to
>> some of the background where we aimed to use Open Banking API as the secure
>> means of connecting both trusted first party apps (i.e. mobile banking) as
>> wells third party apps to the back-end.
>>
>> https://markmail.org/thread/pijv4kb5i5lmqx33
>>
>>
>> Here are the resources on Open Banking. I will share with you the lab
>> environment soon and the repositories where all the open banking
>> configuration is at.
>>
>> Docs: https://mifos.gitbook.io/docs/
>>
>> *Mifos API Gateway Technical Overview:*
>>
>>  Mifos API Gateway Technical Overview
>> <https://docs.google.com/a/mifos.org/document/d/1Dt5GlMA5USlPHishVQp4M1FY-D6tz8g9aZjCayi-jkg/edit?usp=drive_web>
>>
>>  Fineract API Gateway implementation - Handover ...
>> <https://docs.google.com/a/mifos.org/document/d/1F7Wz5TaHfZ0quS-qjrUJleXWYwtRfMXdnZy3MdC50ws/edit?usp=drive_web>
>>
>>
>> Webinar Demoing the POC built out
>> https://www.youtube.com/watch?v=EcP5U-hPwpY
>>
>>
>>
>>


Re: Issue with Fineract 1.4

2020-02-05 Thread David Yahalomi
Hey Ivan,

The PR opened by Tomer is ready: https://github.com/apache/fineract/pull/711
.

Thanks ahead,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Thu, Jan 30, 2020 at 3:17 PM David Yahalomi  wrote:

> Thanks Ivan!
> It worked great!
>
> Tomer, my teammate will PR asap.
>
> Best,
> David Yahalomi
> Co-Founder
>
> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
> mobile: + 972 52 817 9787
> email: da...@articode.co
>   <https://articode.co>
>
> ᐧ
>
> On Thu, Jan 30, 2020 at 10:52 AM Ivan Bondarenko 
> wrote:
>
>> Hi David!
>>
>> You need to make AbstractPersistableCustom Serializable.
>>
>> In other words:
>>
>> ... AbstractPersistableCustom implements Serializable ...
>>
>> And run with clean DB.
>>
>> The issue is in AppUser desiarilization I gess .
>>
>> If it works, create PR, please.
>>
>> Ivan
>>
>>
>>
>> чт, 30 янв. 2020 г. в 10:42, David Yahalomi :
>>
>>> Hey Ivan,
>>>
>>> Thanks for replying!
>>> We've used the oauth option.
>>>
>>> The stacktrace as printed in catalina.out:
>>>
>>>  at
>>> org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371)
>>> at
>>> org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:128)
>>> at
>>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
>>> at
>>> org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
>>> at
>>> org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
>>> at
>>> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:144)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$ExposeRepositoryInvocationInterceptor.invoke(CrudMethodMetadataPostProcessor.java:364)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
>>> at org.apache.fineract.portfolio.client.domain.$Proxy239.save(Unknown
>>> Source)
>>> at
>>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper.save(ClientRepositoryWrapper.java:67)
>>> at
>>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper$$FastClassBySpringCGLIB$$a54487b3.invoke()
>>> at
>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
>>> at
>>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper$$EnhancerBySpringCGLIB$$eb415882.save()
>>> at
>>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl.createClient(ClientWritePlatformServiceJpaRepositoryImpl.java:306)
>>> at
>>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl$$FastClassBySpringCGLIB$$71ca1b7f.invoke()
>>> at
>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>

Re: Issue with Fineract 1.4

2020-01-30 Thread David Yahalomi
Thanks Ivan!
It worked great!

Tomer, my teammate will PR asap.

Best,
David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Thu, Jan 30, 2020 at 10:52 AM Ivan Bondarenko  wrote:

> Hi David!
>
> You need to make AbstractPersistableCustom Serializable.
>
> In other words:
>
> ... AbstractPersistableCustom implements Serializable ...
>
> And run with clean DB.
>
> The issue is in AppUser desiarilization I gess .
>
> If it works, create PR, please.
>
> Ivan
>
>
>
> чт, 30 янв. 2020 г. в 10:42, David Yahalomi :
>
>> Hey Ivan,
>>
>> Thanks for replying!
>> We've used the oauth option.
>>
>> The stacktrace as printed in catalina.out:
>>
>>  at
>> org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371)
>> at
>> org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:128)
>> at
>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
>> at
>> org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
>> at
>> org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
>> at
>> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>> at
>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:144)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>> at
>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$ExposeRepositoryInvocationInterceptor.invoke(CrudMethodMetadataPostProcessor.java:364)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>> at
>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>> at
>> org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>> at
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
>> at org.apache.fineract.portfolio.client.domain.$Proxy239.save(Unknown
>> Source)
>> at
>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper.save(ClientRepositoryWrapper.java:67)
>> at
>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper$$FastClassBySpringCGLIB$$a54487b3.invoke()
>> at
>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>> at
>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
>> at
>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper$$EnhancerBySpringCGLIB$$eb415882.save()
>> at
>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl.createClient(ClientWritePlatformServiceJpaRepositoryImpl.java:306)
>> at
>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl$$FastClassBySpringCGLIB$$71ca1b7f.invoke()
>> at
>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>> at
>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
>> at
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
>> at
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>> at
>> org.springframework.aop.fra

Re: Issue with Fineract 1.4

2020-01-30 Thread David Yahalomi
nterceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
... 183 common frames omitted

Currently trying to debug the process locally. Will let you know if
something comes up.

Thanks again,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>

ᐧ

On Wed, Jan 29, 2020 at 9:54 PM Ivan Bondarenko  wrote:

> Hello David!
>
> Could you provide full stacktrace?
> Do you use basic or oauth authentication?
>
> Could you try following: "AbstractPersistableCustom implements
> Serializable"?
>
> Ivan
>
> ср, 29 янв. 2020 г. в 20:26, David Yahalomi :
>
>> Hey there,
>>
>> We've tried using Fineract 1.4 release tag and got this exception while
>> trying to create a new entity (tried user, client, glaccount and office) on
>> a new clean database:
>>
>> org.apache.openjpa.persistence.InvalidStateException: Encountered
>> unmanaged object
>> "org.apache.fineract.useradministration.domain.AppUser@3ac92522" in life
>> cycle state  unmanaged while cascading persistence via field "org.apach
>> e.fineract.portfolio.client.domain.Client.submittedBy" during flush.
>> However, this field does not allow cascade persist. You cannot flush
>> unmanaged objects or graphs that have persistent associations to unmanaged
>> objects.
>>  Suggested actions: a) Set the cascade attribute for this field to
>> CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" or
>> "all" (JPA orm.xml),
>>  b) enable cascade-persist globally,
>>  c) manually persist the related field value prior to flushing.
>>  d) if the reference belongs to another context, allow reference to it by
>> setting StoreContext.setAllowReferenceToSiblingContext().
>>
>> Has anyone experienced the same?
>>
>> Thanks ahead,
>>
>> David Yahalomi
>> Co-Founder
>>
>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>> mobile: + 972 52 817 9787
>> email: da...@articode.co
>>   <https://articode.co>
>> ᐧ
>>
>


Issue with Fineract 1.4

2020-01-29 Thread David Yahalomi
Hey there,

We've tried using Fineract 1.4 release tag and got this exception while
trying to create a new entity (tried user, client, glaccount and office) on
a new clean database:

org.apache.openjpa.persistence.InvalidStateException: Encountered unmanaged
object "org.apache.fineract.useradministration.domain.AppUser@3ac92522" in
life cycle state  unmanaged while cascading persistence via field "org.apach
e.fineract.portfolio.client.domain.Client.submittedBy" during flush.
However, this field does not allow cascade persist. You cannot flush
unmanaged objects or graphs that have persistent associations to unmanaged
objects.
 Suggested actions: a) Set the cascade attribute for this field to
CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" or
"all" (JPA orm.xml),
 b) enable cascade-persist globally,
 c) manually persist the related field value prior to flushing.
 d) if the reference belongs to another context, allow reference to it by
setting StoreContext.setAllowReferenceToSiblingContext().

Has anyone experienced the same?

Thanks ahead,

David Yahalomi
Co-Founder

Rothschild Blvd 3, Tel Aviv-Yafo, Israel
mobile: + 972 52 817 9787
email: da...@articode.co
  <https://articode.co>
ᐧ


Re: DISCUSS: Architecture/Design for Enabling External Apps to securely access data on Apache Fineract CN

2019-01-06 Thread David Yahalomi
Hello Fineracters,

*TL;DR*: Let's start with a threats list and discuss each threat on it's
own and in composition.

I'm David from Articode and I've recently started setting up a self service
fineract solution.
In the past I've worked on developing a digital self service branch for the
2nd biggest bank in Israel. Their core used T24 by the swiss company
Temenos.
I have recently been in contact with Ed and Fiter from the fineract
community, and I was asked by Ed to chime in this thread.

In my experience, making a secure self service mobile application has many
concerns and requirements but most of those are addressed in deployment
architecture and the creation of a good audit and session management tool.

Is there a documented list of possible threats in having a self service
mobile app?

If not, I think it will be a great first step. I would gladly start one on
the confluence.
Once curated, we can introduce various solutions to defend against any of
those threats in various environments, but I think that the list is a
mandatory step.

Best,
David