<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesorigindev-collection-v1 _class='hudson.plugins.git.util.Build'><buildNumber>3</buildNumber><marked><SHA1>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</SHA1><branch><SHA1>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</SHA1><name>refs/remotes/origin/dev-collection-v1</name></branch></marked><revision><SHA1>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</SHA1><branch><SHA1>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</SHA1><name>refs/remotes/origin/dev-collection-v1</name></branch></revision></refsremotesorigindev-collection-v1></buildsByBranchName><lastBuiltRevision><SHA1>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</SHA1><branch><SHA1>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</SHA1><name>refs/remotes/origin/dev-collection-v1</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>app-android-debug.apk</displayPath><fileName>app-android-debug.apk</fileName><relativePath>app-android/build/outputs/apk/debug/app-android-debug.apk</relativePath></artifact><artifact><displayPath>app-android-release.apk</displayPath><fileName>app-android-release.apk</fileName><relativePath>app-android/build/outputs/apk/release/app-android-release.apk</relativePath></artifact><artifact><displayPath>app-android-debug.aab</displayPath><fileName>app-android-debug.aab</fileName><relativePath>app-android/build/outputs/bundle/debug/app-android-debug.aab</relativePath></artifact><artifact><displayPath>app-android-release.aab</displayPath><fileName>app-android-release.aab</fileName><relativePath>app-android/build/outputs/bundle/release/app-android-release.aab</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>app-android/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>app-cli-1.0.46a.zip</displayPath><fileName>app-cli-1.0.46a.zip</fileName><relativePath>app-cli/build/distributions/app-cli-1.0.46a.zip</relativePath></artifact><artifact><displayPath>app-server-1.0.46a.zip</displayPath><fileName>app-server-1.0.46a.zip</fileName><relativePath>app-server/build/distributions/app-server-1.0.46a.zip</relativePath></artifact><artifact><displayPath>app-server-shadow-1.0.46a.zip</displayPath><fileName>app-server-shadow-1.0.46a.zip</fileName><relativePath>app-server/build/distributions/app-server-shadow-1.0.46a.zip</relativePath></artifact><building>false</building><displayName>#3</displayName><duration>152127</duration><estimatedDuration>149625</estimatedDuration><fullDisplayName>dev-collection-v1 #3</fullDisplayName><id>3</id><inProgress>false</inProgress><keepLog>false</keepLog><number>3</number><queueId>66</queueId><result>SUCCESS</result><timestamp>1790283300257</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/dev-collection-v1/3/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/10.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthOptionConfig.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</affectedPath><affectedPath>lib-ihttp-core/README.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</affectedPath><affectedPath>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</affectedPath><affectedPath>lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/11.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/AuthOptionConfigTypeEnum.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthenticationOption.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</affectedPath><affectedPath>README.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryAuthOptionEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryAuthOptionEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</affectedPath><commitId>ef2dd76eb0fd8e2c2e9658586434f96cd696a39e</commitId><timestamp>1790178862000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete models and add authentication options to SchoolDirectoryEntry.
</comment><date>2026-09-23 19:54:22 +0400</date><id>ef2dd76eb0fd8e2c2e9658586434f96cd696a39e</id><msg>Remove obsolete models and add authentication options to SchoolDirectoryEntry.</msg><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/10.json</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/11.json</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/AuthOptionConfigTypeEnum.kt</file></path><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>edit</editType><file>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryAuthOptionEntityDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthOptionConfig.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>delete</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</file></path><path><editType>edit</editType><file>lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryAuthOptionEntity.kt</file></path><path><editType>edit</editType><file>lib-ihttp-core/README.md</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</file></path><path><editType>delete</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthenticationOption.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiCollectionListingExt.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/saveopdsfeed/SaveOpdsFeedUseCase.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/getopdsfeedforxapiactivity/GetOpdsFeedForXapiActivityUseCase.kt</affectedPath><commitId>fc464aa02eb3258fe62d1d7668432b98f2025b32</commitId><timestamp>1790230215000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Implement OPDS collections listing and pinning via xAPI statements
</comment><date>2026-09-24 11:40:15 +0530</date><id>fc464aa02eb3258fe62d1d7668432b98f2025b32</id><msg>Implement OPDS collections listing and pinning via xAPI statements</msg><path><editType>edit</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/saveopdsfeed/SaveOpdsFeedUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiCollectionListingExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/getopdsfeedforxapiactivity/GetOpdsFeedForXapiActivityUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_bookmarks_collections_to_school_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><commitId>e56b2f85259fd357ea35c2196cee9ad09b4b6a29</commitId><timestamp>1790243920000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add end to end test for collections
</comment><date>2026-09-24 13:58:40 +0400</date><id>e56b2f85259fd357ea35c2196cee9ad09b4b6a29</id><msg>Add end to end test for collections</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_001_user_add_apps_bookmarks_collections_to_school_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_bookmarks_collections_to_school_test.yaml</affectedPath><commitId>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</commitId><timestamp>1790255845000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add end to end test for collections
</comment><date>2026-09-24 17:17:25 +0400</date><id>68eb9492f73bb0e2b4128c61019b4b16544c0d7f</id><msg>Add end to end test for collections</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_bookmarks_collections_to_school_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit></freeStyleBuild>