in server/src/main/java/com/epam/aidial/core/server/service/ApplicationService.java [180:214]
public List<Application> getApplications(ResourceDescriptor resource,
Consumer<ResourceFolderMetadata> filter, ProxyContext ctx) {
if (!resource.isFolder() || resource.getType() != ResourceTypes.APPLICATION) {
throw new IllegalArgumentException("Invalid application folder: " + resource.getUrl());
}
List<Application> applications = new ArrayList<>();
String nextToken = null;
do {
ResourceFolderMetadata folder = resourceService.getFolderMetadata(resource, nextToken, PAGE_SIZE, true);
if (folder == null) {
break;
}
filter.accept(folder);
for (MetadataBase meta : folder.getItems()) {
if (meta.getNodeType() == NodeType.ITEM && meta.getResourceType() == ResourceTypes.APPLICATION) {
try {
ResourceDescriptor item = ResourceDescriptorFactory.fromAnyUrl(meta.getUrl(), encryptionService);
Application application = getApplication(item).getValue();
application = ApplicationTypeSchemaUtils.filterCustomClientPropertiesWhenNoWriteAccess(ctx, item, application);
applications.add(application);
} catch (ResourceNotFoundException ignore) {
// deleted while fetching
}
}
}
nextToken = folder.getNextToken();
} while (nextToken != null);
return applications;
}