[ https://issues.apache.org/jira/browse/AIRAVATA-2584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16269468#comment-16269468 ]
ASF GitHub Bot commented on AIRAVATA-2584: ------------------------------------------ smarru closed pull request #137: [AIRAVATA-2584] README for Profile Service URL: https://github.com/apache/airavata/pull/137 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/airavata-services/profile-service/README b/airavata-services/profile-service/README new file mode 100644 index 0000000000..d8471f407b --- /dev/null +++ b/airavata-services/profile-service/README @@ -0,0 +1,90 @@ + +Apache Airavata Profile Service +------------------------------------ + +AIRAVATA_DEVELOP + +-- airavata-api + +-- airavata-services + ¦ +-- profile-service + ¦ ¦ +-- profile-service-client-sdks + ¦ ¦ ¦ +-- java-client-samples + ¦ ¦ +-- profile-service-commons + ¦ ¦ ¦ +-- repositories + ¦ ¦ ¦ +-- tenant-entities + ¦ ¦ ¦ +-- user-entities + ¦ ¦ ¦ +-- utils-and-JPA-utils + ¦ ¦ +-- profile-service-server + ¦ ¦ ¦ +-- user-profile-service-handler + ¦ ¦ ¦ +-- profile-service-server + ¦ ¦ ¦ +-- profile-service-utils + ¦ ¦ +-- profile-service-stubs + ¦ ¦ ¦ +-- profile-service-client + ¦ ¦ ¦ +-- user-cpi + ¦ ¦ +-- profile-user-core + ¦ ¦ ¦ +-- user-profile-repository + ¦ ¦ ¦ +-- resources (user_profile_catalog) + ¦ ¦ ¦ + ¦ ¦ ¦ + +-- thrift-interface-descriptions + ¦ +-- data-models + ¦ ¦ +-- user-tenant-group-models + ¦ ¦ ¦ +-- user-profile-model.thrift + ¦ +-- service-cpi + ¦ ¦ +-- profile-service + ¦ ¦ ¦ +-- profile-user + ¦ ¦ ¦ ¦ +-- profile-user-cpi.thrift + +## profile-service-client-sdks + +The folder contains java client samples, which can be used to test all the profile service methods (add user, get user, delete user etc.). + + +## profile-service-commons + +All the OpenJPA entities related to user profile (UserProfile, CustomDashboard, NSFDemographics) exist in this module. The utilities required for the OpenJPA connection exist in the 'utils' subdirectory. OpenJPA requires the use of a XML file called the 'persistence.xml' that describes how to access the data. Here the persistence.xml is created in the 'resources' sub folder. In the case of adding a new entity to profile service, the class of thew new entity should be added here profile service persistant unit. + +Descriptions for the entities used: + +UserProfileEntity - Corresponds to USER_PROFILE table. Contains all the details of the user as defined in the user-profile-model.thrift file. +NSFDemographicsEntity - Corresponds to NSF_DEMOGRAPHICS table. Holds the NSF Demographic information +CustomDashboardEntity - Corresponds to CUSTOMIZED_DASHBOARD table. It holds the customized attributes of the administrator dashboard. + + +## profile-service-server + +This folder contains the thrift generated server code for the profile service methods based on the methods specified in the thrift idl. The profile service handler instantiates the UserProfileRepository to execute all of the service methods. + +Service methods: + +String addUserProfile(AuthzToken authzToken, UserProfile userProfile) + +boolean updateUserProfile(AuthzToken authzToken, UserProfile userProfile) + +UserProfile getUserProfileById(AuthzToken authzToken, String userId, String gatewayId) + +boolean deleteUserProfile(AuthzToken authzToken, String userId, String gatewayId) + +List<UserProfile> getAllUserProfilesInGateway(AuthzToken authzToken, String gatewayId, int offset, int limit) + +boolean doesUserExist(AuthzToken authzToken, String userId, String gatewayId) + + +## profile-service-stubs + +The generated thrift stubs are copied in this folder. It conatins the thrift generated client code + + +## profile-user-core + +This folder contains the repository class. The UserProfileRepository class conatins all the methods that access the database and returns the result to the handler. This module also contains the user_profile_catalog.sql file which contains all the CREATE TABLE statements for all the entities of the profile-service. Note that, the development version of airavata does not use this sql file as the entities are created in the derbey database as defined in the persistence.xml. However, the production version of airavata uses this file to create tables in the MySQL database server. + + +## thrift-interface-descriptions + +user-profile-model.thrift file contains all the data models required by the profile-service. It contains structures for the UserProfile, CustomDashboard and NSFDemographics written using thrift IDL. A struct has to be defined for any new entity that gets added and the thrift stubs have to be generated again. + +profile-user-cpi.thrift file contains the Component Programming Interface definitions for the user profile service written in thrift idl. + +Service CPI stubs can be generated by running the 'generate-service-cpi-stubs.sh' script and the data model stubs can be generated by running the 'generate-thrift-stubs.sh' script which generates the thrift stub for Java, PHP, python, Java or CPP based on the parameter. + + ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > README for Profile Service > -------------------------- > > Key: AIRAVATA-2584 > URL: https://issues.apache.org/jira/browse/AIRAVATA-2584 > Project: Airavata > Issue Type: Improvement > Affects Versions: 0.17 > Reporter: Sachin Kariyattin > Assignee: Sachin Kariyattin > > * Write a README for the Profile Service code > * Suggest possible improvements if possible. -- This message was sent by Atlassian JIRA (v6.4.14#64029)