if provider is None:
            continue
        if not provider.available():
            continue

        item_ids = []
        for item in provider.provide():
            id = str(item.id)
            item_ids.append(id)

            content_item = db.query(ContentItem).filter_by(type=type, type_key=id).first()
            if content_item is None:
                content_item = ContentItem()
                content_item.type = type
                content_item.type_key = id
                content_item.started_at = item.started_at
                content_item.created_at = item.created_at
                content_item.permissions = content_types[type].get("permissions", 0)
                content_item.data = item.data

                for kv_directory in item.kv:
                    kv = item.kv[kv_directory]
                    for k, v in kv() if callable(kv) else kv:
                        if k not in kv_storage[kv_directory]:
                            kv_storage[kv_directory][k] = v() if callable(v) else v

                db.add(content_item)
                db.flush()

                provider.on_item_inserted(content_item)
        db.flush()