From 07adcfc9c76f09b5f75e2460a4b90b60d3b33249 Mon Sep 17 00:00:00 2001 From: jingrow Date: Tue, 23 Dec 2025 20:42:58 +0800 Subject: [PATCH] update Frappe - Jingrow --- README.md | 16 ++-- backbone/README.md | 2 +- backbone/packer/cloud-init-scaleway.yml | 2 +- backbone/vagrant/Vagrantfile | 2 +- dashboard/README.md | 2 +- dashboard/index.html | 4 +- .../src/components/AlertAddressDetails.vue | 2 +- .../src/components/AlertBudgetThreshold.vue | 2 +- dashboard/src/components/AppSidebar.vue | 2 +- .../components/BuyPrepaidCreditsRazorpay.vue | 2 +- .../src/components/ChurnFeedbackDialog.vue | 10 +-- .../src/components/ManageSitePlansDialog.vue | 4 +- dashboard/src/components/MobileNav.vue | 2 +- dashboard/src/components/Onboarding.vue | 6 +- .../components/billing/BuyCreditsRazorpay.vue | 2 +- .../marketplace/NewMarketplaceAppDialog.vue | 2 +- .../partners/BuyPartnerCreditsRazorpay.vue | 2 +- .../partners/PartnerApprovalRequests.vue | 6 +- .../partners/PartnerLocalPaymentSetup.vue | 2 +- .../components/partners/PartnerOverview.vue | 2 +- .../components/partners/UpdateWonDialog.vue | 2 +- .../ServerSnapshotRecoverSitesDialog.vue | 2 +- .../components/settings/DeveloperSettings.vue | 2 +- .../settings/profile/AccountPartner.vue | 6 +- .../settings/profile/AccountReferral.vue | 4 +- dashboard/src/components/site/SiteLogs.vue | 2 +- .../components/site/UninstallAppDialog.vue | 2 +- dashboard/src/controllers/call.js | 4 +- dashboard/src/controllers/fileUploader.js | 2 +- dashboard/src/objects/group.js | 2 +- dashboard/src/objects/server.js | 4 +- dashboard/src/objects/site.js | 2 +- .../src/pages/CreateSiteForMarketplaceApp.vue | 2 +- dashboard/src/pages/EnableServers.vue | 4 +- dashboard/src/pages/InstallApp.vue | 4 +- dashboard/src/pages/LoginSignup.vue | 4 +- dashboard/src/pages/NewReleaseGroup.vue | 6 +- dashboard/src/pages/NewServer.vue | 2 +- dashboard/src/pages/NewSite.vue | 10 +-- dashboard/src/pages/SiteLogin.vue | 4 +- .../devtools/database/DatabaseAnalyzer.vue | 2 +- .../src/pages/signup/OAuthSetupAccount.vue | 2 +- dashboard/src/pages/signup/Signup.vue | 2 +- .../tests-e2e/tests/cron/signup.cron.spec.ts | 2 +- debugging/mariadb.build.md | 4 +- deployment/nginx.conf | 16 ++-- docs/General Guide/Debugging Issues.MD | 2 +- docs/General Guide/DevOps Manual.MD | 2 +- docs/General Guide/Operational Manual.MD | 10 +-- docs/Internals/Billing & Subscription.MD | 8 +- docs/Introduction/Architecture.MD | 2 +- docs/Introduction/Local Setup Using Cloud.MD | 16 ++-- .../Introduction/Local Setup Using Vagrant.MD | 2 +- guide-to-testing.md | 2 +- libs/fc_cli/fc/authentication/session.py | 2 +- libs/fc_cli/fc/commands/deploy.py | 2 +- libs/fc_cli/pyproject.toml | 2 +- libs/fcrestore/main.go | 10 +-- libs/mariadb_binlog_indexer/pyproject.toml | 2 +- press/api/account.py | 6 +- press/api/analytics.py | 2 +- press/api/bench.py | 2 +- press/api/billing.py | 8 +- press/api/central.py | 2 +- press/api/client.py | 4 +- press/api/developer/saas.py | 8 +- press/api/github.py | 4 +- press/api/google.py | 4 +- press/api/marketplace.py | 12 +-- press/api/oauth.py | 2 +- press/api/site.py | 12 +-- press/api/tests/test_marketplace.py | 2 +- press/api/tests/test_server.py | 2 +- press/api/tests/test_site.py | 6 +- press/bootstrap.py | 8 +- press/config/desktop.py | 2 +- press/docker/Dockerfile | 2 +- press/docker/Dockerfile_Bench_5_2_1 | 2 +- press/docker/docker-compose.yml | 8 +- press/docker/registry.conf | 2 +- .../referral_bonus/test_referral_bonus.py | 2 +- press/fixtures/frappe_version.json | 84 +++++++++---------- press/fixtures/print_format.json | 4 +- press/hooks.py | 8 +- .../test_incident_investigator.py | 2 +- .../arm_build_record/test_arm_build_record.py | 2 +- .../ssh_access_audit/test_ssh_access_audit.py | 2 +- .../test_virtual_disk_resize.py | 2 +- .../test_virtual_machine_migration.py | 2 +- .../test_virtual_machine_replacement.py | 2 +- .../app_plan_version/app_plan_version.json | 2 +- .../patches/add_rating_values_to_apps.py | 2 +- .../app_user_review/test_app_user_review.py | 2 +- .../test_developer_review_reply.py | 2 +- .../test_marketplace_app_feedback.py | 2 +- .../test_marketplace_app_payment.py | 2 +- .../test_marketplace_app_plan.py | 2 +- .../test_marketplace_app_subscription.py | 2 +- .../test_marketplace_promotional_banner.py | 2 +- .../marketplace_publisher_profile.json | 6 +- .../test_marketplace_publisher_profile.py | 2 +- .../test_marketplace_settings.py | 2 +- press/metrics.py | 2 +- .../test_certificate_link_request.py | 2 +- .../partner_approval_request.json | 2 +- .../test_partner_approval_request.py | 2 +- .../test_partner_certificate.py | 2 +- .../test_partner_certificate_request.py | 2 +- .../partner_consent/partner_consent.json | 2 +- .../partner_consent/test_partner_consent.py | 2 +- .../doctype/partner_lead/partner_lead.json | 4 +- .../doctype/partner_lead/partner_lead.py | 2 +- .../doctype/partner_lead/test_partner_lead.py | 2 +- .../test_partner_lead_origin.py | 2 +- .../test_partner_lead_type.py | 2 +- .../doctype/partner_tier/test_partner_tier.py | 2 +- .../doctype/territory/test_territory.py | 2 +- .../add_domains_in_site_config_preview.py | 2 +- .../add_site_index_to_site_migration.py | 2 +- .../patches/v0_0_1/add_site_to_remote_file.py | 2 +- .../v0_0_1/create_backup_uploads_folder.py | 2 +- .../v0_0_1/create_balance_transactions.py | 2 +- ...create_balance_transactions_from_stripe.py | 2 +- .../patches/v0_0_1/create_default_cluster.py | 2 +- .../v0_0_1/create_invoice_for_past_ples.py | 2 +- .../v0_0_1/create_site_plan_change_log.py | 2 +- .../v0_0_1/create_site_subscriptions.py | 2 +- .../v0_0_1/enable_partner_privileges.py | 2 +- ...ake_apps_in_public_release_group_public.py | 4 +- .../v0_0_1/make_default_site_domain.py | 2 +- press/patches/v0_0_1/new_onboarding.py | 2 +- press/patches/v0_0_1/patch_invoice.py | 2 +- press/patches/v0_0_1/ple_to_usage_record.py | 2 +- press/patches/v0_0_1/rename_archived_sites.py | 2 +- .../v0_0_1/rename_frappe_app_to_app.py | 2 +- ...e_group_frappe_app_to_release_group_app.py | 2 +- .../v0_0_1/rename_site_backup_fields.py | 2 +- ...rename_transaction_currency_to_currency.py | 2 +- .../v0_0_1/set_billing_name_for_teams.py | 2 +- .../set_dependencies_in_release_group.py | 2 +- .../v0_0_1/set_document_type_in_plan.py | 2 +- press/patches/v0_0_1/set_domain_in_site.py | 2 +- .../patches/v0_0_1/set_hostname_in_server.py | 2 +- .../set_monitoring_password_in_cluster.py | 2 +- .../v0_0_1/set_repository_in_frappe_app.py | 6 +- .../v0_0_1/site_usage_convert_history.py | 2 +- .../v0_0_1/truncate_server_status_table.py | 2 +- ..._proxy_for_suspended_and_inactive_sites.py | 2 +- .../v0_0_1/use_private_ip_for_upstreams.py | 2 +- ...isable_subscriptions_for_inactive_sites.py | 2 +- .../v0_0_4/remove_legacy_billing_doctypes.py | 2 +- ...dd_team_field_for_site_backups_archived.py | 2 +- ...dd_team_field_for_site_related_doctypes.py | 2 +- .../v0_7_0/fix_team_for_tls_certificates.py | 2 +- .../v0_7_0/set_password_config_type.py | 2 +- press/playbooks/convert.yml | 2 +- press/playbooks/fetch_frappe_public_key.yml | 4 +- press/playbooks/roles/convert/tasks/main.yml | 2 +- press/playbooks/roles/docker/tasks/main.yml | 2 +- press/playbooks/roles/keys/tasks/main.yml | 2 +- press/playbooks/roles/mariadb/tasks/main.yml | 2 +- press/playbooks/roles/nginx/tasks/main.yml | 2 +- .../files/registry-docker-compose.yml.j2 | 2 +- .../roles/registry/files/registry-ui.sh | 2 +- .../files/registry-docker-compose.yml.j2 | 2 +- .../roles/sentry/templates/sentry.conf.py | 2 +- .../roles/update_agent/tasks/main.yml | 2 +- press/playbooks/roles/user/tasks/main.yml | 4 +- .../roles/warning_banners/files/issue.j2 | 4 +- .../roles/warning_banners/files/motd.j2 | 4 +- .../account_request/account_request.py | 10 +-- .../account_request/test_account_request.py | 2 +- .../add_on_settings/test_add_on_settings.py | 2 +- .../test_add_on_storage_log.py | 2 +- .../doctype/agent_job/agent_job_dashboard.py | 2 +- .../press/doctype/agent_job/test_agent_job.py | 2 +- .../test_agent_job_callback.py | 2 +- .../agent_job_step/test_agent_job_step.py | 2 +- .../agent_job_type/test_agent_job_type.py | 2 +- .../test_agent_request_failure.py | 2 +- .../doctype/agent_update/test_agent_update.py | 2 +- .../test_alertmanager_webhook_log.py | 2 +- ...t_alertmanager_webhook_log_reaction_job.py | 2 +- .../analytics_server/analytics_server.json | 4 +- .../analytics_server/test_analytics_server.py | 2 +- .../ansible_console/test_ansible_console.py | 2 +- .../test_ansible_console_log.py | 2 +- .../ansible_play/ansible_play_dashboard.py | 2 +- .../doctype/ansible_play/test_ansible_play.py | 2 +- .../doctype/ansible_task/test_ansible_task.py | 2 +- press/press/doctype/app/app.json | 2 +- press/press/doctype/app/app_dashboard.py | 2 +- press/press/doctype/app/test_app.py | 10 +-- .../set_archived_patch_on_archived_bench.py | 2 +- .../press/doctype/app_patch/test_app_patch.py | 2 +- .../patches/set_clone_directory.py | 2 +- .../patches/set_status_to_draft.py | 2 +- .../doctype/app_release/test_app_release.py | 2 +- .../app_release_approval_request.py | 8 +- .../test_app_release_approval_request.py | 2 +- .../test_app_release_difference.py | 2 +- .../doctype/app_rename/test_app_rename.py | 2 +- .../press/doctype/app_source/app_source.json | 4 +- .../app_source/app_source_dashboard.py | 2 +- .../doctype/app_source/test_app_source.py | 2 +- .../app_source_version.json | 2 +- press/press/doctype/app_tag/test_app_tag.py | 2 +- .../press/doctype/audit_log/test_audit_log.py | 2 +- .../test_auto_scale_record.py | 2 +- .../test_aws_savings_plan_recommendation.py | 2 +- .../backup_bucket/test_backup_bucket.py | 2 +- .../test_backup_restoration_test.py | 2 +- .../test_balance_transaction.py | 2 +- .../bastion_server/bastion_server.json | 2 +- .../bastion_server/test_bastion_server.py | 2 +- press/press/doctype/bench/bench_dashboard.py | 2 +- press/press/doctype/bench/test_bench.py | 2 +- .../press/doctype/bench_app/test_bench_app.py | 2 +- .../bench_dependency/test_bench_dependency.py | 2 +- .../bench_dependency_version.json | 4 +- .../test_bench_get_app_cache.py | 2 +- .../doctype/bench_shell/test_bench_shell.py | 2 +- .../bench_shell_log/test_bench_shell_log.py | 2 +- .../test_bench_site_update.py | 2 +- .../doctype/bench_update/test_bench_update.py | 2 +- .../blocked_domain/test_blocked_domain.py | 2 +- .../test_build_cache_shell.py | 2 +- .../doctype/build_metric/test_build_metric.py | 2 +- .../certificate_authority.json | 4 +- .../test_certificate_authority.py | 2 +- .../doctype/cloud_region/test_cloud_region.py | 2 +- press/press/doctype/cluster/cluster.py | 30 +++---- .../cluster/patches/rename_aws_fields.py | 2 +- press/press/doctype/cluster/test_cluster.py | 2 +- .../doctype/cluster_plan/test_cluster_plan.py | 2 +- .../doctype/code_server/test_code_server.py | 2 +- .../test_cookie_preference_log.py | 2 +- .../test_currency_exchange.py | 2 +- .../dashboard_banner/test_dashboard_banner.py | 2 +- .../database_server/database_server.js | 4 +- .../database_server/database_server.json | 4 +- .../database_server/database_server.py | 2 +- .../database_server_dashboard.py | 2 +- .../database_server/test_database_server.py | 2 +- .../patches/add_unique_constraint.py | 2 +- .../test_database_server_mariadb_variable.py | 2 +- press/press/doctype/deploy/test_deploy.py | 2 +- .../doctype/deploy_bench/test_deploy_bench.py | 2 +- .../deploy_candidate_dashboard.py | 2 +- .../deploy_candidate/deploy_notifications.py | 14 ++-- .../deploy_candidate/test_deploy_candidate.py | 6 +- .../patches/set_app_name_to_app.py | 2 +- .../patches/migrate_to_separate_build.py | 2 +- .../test_deploy_candidate_build.py | 2 +- .../test_deploy_candidate_difference.py | 2 +- .../disk_performance/test_disk_performance.py | 2 +- .../downtime_analysis/generate_metrics.py | 2 +- .../test_downtime_analysis.py | 2 +- .../patches/migrate_to_product_trial_field.py | 2 +- .../patches/set_correct_field_for_html.py | 2 +- .../test_erpnext_consultant.py | 2 +- .../test_erpnext_site_settings.py | 2 +- .../doctype/frappe_version/frappe_version.js | 2 +- .../frappe_version/frappe_version.json | 4 +- .../frappe_version/test_frappe_version.py | 4 +- .../frappe_version_dependency.json | 2 +- .../test_github_webhook_log.py | 2 +- press/press/doctype/incident/incident.py | 2 +- press/press/doctype/incident/test_incident.py | 2 +- .../test_incident_settings.py | 2 +- .../inspect_trace_id/test_inspect_trace_id.py | 2 +- press/press/doctype/invoice/invoice.js | 4 +- press/press/doctype/invoice/invoice.json | 6 +- press/press/doctype/invoice/invoice.py | 10 +-- press/press/doctype/invoice/invoice_list.js | 2 +- .../doctype/invoice/mark_as_uncollectible.py | 2 +- .../invoice/patches/set_free_credits.py | 2 +- .../patches/set_transaction_details.py | 2 +- .../doctype/invoice/stripe_webhook_handler.py | 2 +- press/press/doctype/invoice/test_invoice.py | 2 +- .../doctype/log_counter/test_log_counter.py | 2 +- .../press/doctype/log_server/log_server.json | 4 +- .../doctype/log_server/test_log_server.py | 2 +- .../test_logical_replication_backup.py | 2 +- press/press/doctype/mail_log/test_mail_log.py | 2 +- .../doctype/mail_setup/test_mail_setup.py | 2 +- .../doctype/malware_scan/test_malware_scan.py | 2 +- .../test_managed_database_service.py | 2 +- .../mariadb_binlog/test_mariadb_binlog.py | 2 +- .../mariadb_stalk/test_mariadb_stalk.py | 2 +- .../mariadb_variable/test_mariadb_variable.py | 2 +- .../marketplace_app/marketplace_app.json | 2 +- ...om_first_site_creation_to_site_creation.py | 2 +- .../patches/convert_images_to_webp.py | 2 +- .../templates/marketplace_app.html | 2 +- .../marketplace_app/test_marketplace_app.py | 2 +- press/press/doctype/marketplace_app/utils.py | 2 +- .../test_marketplace_app_categories.py | 2 +- .../test_marketplace_app_category.py | 2 +- .../marketplace_app_version.json | 2 +- .../test_module_setup_guide.py | 2 +- .../monitor_server/monitor_server.json | 4 +- .../monitor_server/test_monitor_server.py | 2 +- .../test_mpesa_payment_record.py | 2 +- .../test_mpesa_request_log.py | 2 +- .../doctype/mpesa_setup/test_mpesa_setup.py | 2 +- .../press/doctype/nfs_server/nfs_server.json | 4 +- .../doctype/nfs_server/test_nfs_server.py | 2 +- .../test_nfs_volume_attachment.py | 2 +- .../test_nfs_volume_detachment.py | 2 +- .../test_oauth_domain_mapping.py | 2 +- .../test_partner_payment_payout.py | 2 +- .../payment_dispute/test_payment_dispute.py | 2 +- .../test_payment_due_extension.py | 2 +- .../payment_gateway/test_payment_gateway.py | 2 +- .../payment_partner_transaction.json | 2 +- .../test_payment_partner_transaction.py | 2 +- .../change_fields_from_recipient_to_team.py | 2 +- .../patches/compute_total_amount.py | 2 +- .../doctype/payout_order/payout_order.json | 2 +- .../doctype/payout_order/payout_order.py | 2 +- .../doctype/payout_order/test_payout_order.py | 2 +- .../test_physical_backup_group.py | 2 +- .../test_physical_backup_restoration.py | 2 +- .../test_physical_restoration_test.py | 2 +- .../doctype/plan_change/test_plan_change.py | 2 +- .../press_feedback/test_press_feedback.py | 2 +- .../press/doctype/press_job/test_press_job.py | 2 +- .../press_job_step/test_press_job_step.py | 2 +- .../press_job_type/test_press_job_type.py | 2 +- .../test_press_job_type_step.py | 2 +- .../test_press_method_permission.py | 2 +- .../test_press_notification.py | 2 +- .../test_press_permission_group.py | 2 +- .../change_fields_from_enable_to_allow.py | 2 +- .../press_role/patches/migrate_permissions.py | 2 +- .../doctype/press_role/test_press_role.py | 2 +- .../test_press_role_permission.py | 2 +- .../patches/set_minimum_rebuild_memory.py | 2 +- .../press_settings/press_settings.json | 8 +- .../doctype/press_settings/press_settings.py | 6 +- .../press_settings/test_press_settings.py | 2 +- .../press/doctype/press_tag/test_press_tag.py | 2 +- .../test_press_user_permission.py | 2 +- .../doctype/press_webhook/press_webhook.py | 2 +- .../press_webhook/test_press_webhook.py | 2 +- .../test_press_webhook_attempt.py | 2 +- .../test_press_webhook_event.py | 2 +- .../test_press_webhook_log.py | 2 +- .../process_snapshot/test_process_snapshot.py | 2 +- .../test_prometheus_alert_rule.py | 2 +- .../proxy_failover/test_proxy_failover.py | 2 +- .../doctype/proxy_server/proxy_server.json | 4 +- .../proxy_server/proxy_server_dashboard.py | 2 +- .../doctype/proxy_server/test_proxy_server.py | 2 +- .../test_razorpay_payment_record.py | 2 +- .../razorpay_webhook_log.py | 8 +- .../test_razorpay_webhook_log.py | 2 +- press/press/doctype/region/test_region.py | 2 +- .../registry_server/registry_server.json | 4 +- .../registry_server/test_registry_server.py | 2 +- .../set_bench_dependency_in_release_group.py | 2 +- .../patches/sync_common_site_config.py | 2 +- .../doctype/release_group/release_group.json | 2 +- .../doctype/release_group/release_group.py | 10 +-- .../release_group/release_group_dashboard.py | 2 +- .../release_group/test_release_group.py | 16 ++-- .../doctype/remote_file/test_remote_file.py | 2 +- .../test_remote_operation_log.py | 2 +- .../press/doctype/resource_tag/tag_helpers.py | 2 +- .../doctype/root_domain/test_root_domain.py | 2 +- .../test_scheduled_auto_update_log.py | 2 +- .../security_update/test_security_update.py | 2 +- .../test_security_update_check.py | 2 +- .../self_hosted_server.json | 2 +- .../self_hosted_server_dashboard.py | 2 +- .../test_self_hosted_server.py | 2 +- .../test_serial_console_log.py | 2 +- press/press/doctype/server/server.json | 4 +- press/press/doctype/server/server.py | 2 +- .../press/doctype/server/server_dashboard.py | 2 +- press/press/doctype/server/test_server.py | 2 +- .../server_activity/test_server_activity.py | 2 +- .../doctype/server_plan/test_server_plan.py | 2 +- .../server_snapshot/test_server_snapshot.py | 2 +- .../test_server_snapshot_plan.py | 2 +- .../test_server_snapshot_recovery.py | 2 +- ...iption_for_servers_with_additional_disk.py | 2 +- .../test_server_storage_plan.py | 2 +- .../silenced_alert/test_silenced_alert.py | 2 +- press/press/doctype/site/erpnext_site.py | 2 +- .../set_database_access_credentials.py | 2 +- .../doctype/site/patches/set_plan_in_site.py | 2 +- .../patches/set_plan_limit_in_site_config.py | 2 +- ...izard_check_next_retry_datetime_in_site.py | 2 +- press/press/doctype/site/site.py | 16 ++-- press/press/doctype/site/test_site.py | 4 +- .../site_activity/test_site_activity.py | 2 +- .../site_analytics/site_analytics.json | 2 +- .../site_analytics/test_site_analytics.py | 2 +- .../doctype/site_backup/test_site_backup.py | 2 +- .../site_config_key/test_site_config_key.py | 2 +- .../test_site_config_key_blacklist.py | 2 +- .../test_site_database_user.py | 2 +- .../doctype/site_domain/test_site_domain.py | 2 +- .../site_group_deploy/site_group_deploy.json | 2 +- .../site_group_deploy/site_group_deploy.py | 2 +- .../test_site_group_deploy.py | 2 +- .../site_migration/test_site_migration.py | 2 +- .../test_site_migration_step.py | 2 +- .../site_partner_lead/site_partner_lead.json | 2 +- .../test_site_partner_lead.py | 2 +- press/press/doctype/site_plan/site_plan.json | 4 +- .../press/doctype/site_plan/test_site_plan.py | 2 +- .../site_plan_change/test_site_plan_change.py | 2 +- .../site_replication/test_site_replication.py | 2 +- .../press/doctype/site_update/site_update.py | 2 +- .../doctype/site_update/test_site_update.py | 2 +- .../doctype/site_usage/test_site_usage.py | 2 +- .../press/doctype/site_user/test_site_user.py | 2 +- .../site_user_session/site_user_session.py | 2 +- .../test_site_user_session.py | 2 +- .../test_sql_playground_log.py | 2 +- .../ssh_certificate/test_ssh_certificate.py | 2 +- .../test_ssh_certificate_authority.py | 2 +- press/press/doctype/ssh_key/test_ssh_key.py | 2 +- .../test_storage_integration_bucket.py | 2 +- .../test_storage_integration_subscription.py | 2 +- .../test_stripe_micro_charge_record.py | 2 +- .../test_stripe_payment_event.py | 2 +- .../test_stripe_payment_method.py | 2 +- .../add_payment_method_for_failed_events.py | 2 +- .../test_stripe_webhook_log.py | 2 +- .../doctype/subscription/test_subscription.py | 2 +- .../support_access/test_support_access.py | 2 +- .../patches/remove_invalid_email_addresses.py | 2 +- .../doctype/team/patches/set_payment_mode.py | 2 +- .../doctype/team/patches/set_team_title.py | 2 +- press/press/doctype/team/suspend_sites.py | 6 +- press/press/doctype/team/team.json | 2 +- press/press/doctype/team/team.py | 4 +- press/press/doctype/team/team_invoice.py | 2 +- press/press/doctype/team/test_team.py | 2 +- .../doctype/team_change/test_team_change.py | 2 +- .../team_deletion_request.json | 2 +- .../test_team_deletion_request.py | 2 +- .../test_team_member_deletion_request.py | 2 +- .../test_team_member_impersonation.py | 2 +- .../create_groups_from_press_settings.py | 2 +- .../telegram_group/test_telegram_group.py | 2 +- .../telegram_message/test_telegram_message.py | 2 +- .../tls_certificate/test_tls_certificate.py | 2 +- .../doctype/trace_server/test_trace_server.py | 2 +- .../doctype/trace_server/trace_server.json | 4 +- .../doctype/usage_record/test_usage_record.py | 2 +- press/press/doctype/user_2fa/test_user_2fa.py | 2 +- .../test_user_ssh_certificate.py | 2 +- .../doctype/user_ssh_key/test_user_ssh_key.py | 2 +- .../version_upgrade/test_version_upgrade.py | 2 +- .../patches/rename_aws_fields.py | 2 +- .../test_virtual_disk_snapshot.py | 2 +- .../virtual_disk_snapshot.py | 4 +- .../patches/rename_aws_fields.py | 2 +- .../virtual_machine/test_virtual_machine.py | 2 +- .../virtual_machine/virtual_machine.py | 12 +-- .../patches/rename_aws_fields.py | 2 +- .../test_virtual_machine_image.py | 2 +- .../virtual_machine_image.py | 8 +- .../patches/rename_aws_fields.py | 2 +- .../wireguard_peer/test_wireguard_peer.py | 2 +- .../marketplace_app_repository_visibility.py | 2 +- .../report/payment_partner/payment_partner.js | 2 +- .../report/payment_partner/payment_partner.py | 2 +- press/press/workspace/press/press.json | 2 +- press/public/marketplace/js/call.js | 4 +- press/public/migrate | 6 +- press/public/migrate_2 | 6 +- press/saas/README.md | 6 +- press/saas/api/readme.md | 2 +- .../hybrid_saas_pool/test_hybrid_saas_pool.py | 2 +- ..._saas_product_doctypes_to_product_trial.py | 2 +- .../doctype/product_trial/product_trial.json | 2 +- .../product_trial/test_product_trial.py | 2 +- .../test_product_trial_request.py | 2 +- press/saas/doctype/saas_app/test_saas_app.py | 2 +- .../saas_app_plan/test_saas_app_plan.py | 2 +- .../test_saas_app_subscription.py | 2 +- .../saas_app_version/test_saas_app_version.py | 2 +- .../doctype/saas_feedback/saas_feedback.json | 2 +- .../saas_feedback/test_saas_feedback.py | 2 +- .../test_saas_remote_login.py | 2 +- .../saas_settings/test_saas_settings.py | 2 +- .../test_saas_setup_account_generator.py | 2 +- .../test_saas_signup_generator.py | 2 +- .../test_site_access_token.py | 2 +- .../infrastructure/server_conversion.py | 2 +- press/scripts/migrate.py | 6 +- .../emails/2fa_recovery_codes_otp.html | 4 +- press/templates/emails/access_request.html | 4 +- .../emails/access_request_update.html | 2 +- press/templates/emails/base.html | 2 +- press/templates/emails/budget_alert.html | 4 +- .../emails/insufficient_balance.html | 6 +- .../templates/emails/invite_team_member.html | 4 +- press/templates/emails/login_otp.html | 4 +- press/templates/emails/macros.html | 2 +- .../emails/marketplace_app_visibility.html | 6 +- .../emails/marketplace_auto_review.html | 2 +- .../templates/emails/one_time_login_link.html | 2 +- .../emails/partner_link_certificate.html | 2 +- press/templates/emails/payment_failed.html | 6 +- .../emails/payment_failed_partner.html | 4 +- .../emails/press_webhook_disabled.html | 2 +- .../templates/emails/product_trial_email.html | 2 +- .../emails/product_trial_verify_account.html | 2 +- press/templates/emails/remote_login.html | 4 +- press/templates/emails/reset_password.html | 2 +- press/templates/emails/saas.html | 2 +- press/templates/emails/saas_trial.html | 2 +- .../templates/emails/saas_verify_account.html | 4 +- .../site_exceeded_disk_usage_warning.html | 4 +- ...e_suspend_due_to_exceeding_disk_usage.html | 4 +- .../emails/snapshot_recovery_completion.html | 2 +- press/templates/emails/suspended_sites.html | 6 +- .../emails/verification_code_for_login.html | 4 +- press/templates/emails/verify_account.html | 4 +- .../emails/verify_account_for_site_login.html | 4 +- press/templates/marketplace/base.html | 2 +- press/templates/marketplace/footer.html | 6 +- press/templates/saas/signup.html | 2 +- press/tests/before_test.py | 2 +- press/tests/test_2fa.py | 2 +- press/utils/__init__.py | 6 +- press/utils/billing.py | 2 +- press/utils/country_timezone.py | 2 +- press/utils/dns.py | 2 +- press/utils/mpesa_utils.py | 2 +- press/utils/unique_name_generator.py | 2 +- press/www/dashboard.py | 2 +- press/www/dashboard_old.py | 2 +- press/www/github/authorize.py | 2 +- press/www/github/redirect.py | 2 +- press/www/marketplace/index.html | 4 +- press/www/marketplace/index.py | 6 +- press/www/saas/billing.html | 2 +- press/www/saas/billing.js | 16 ++-- pyproject.toml | 4 +- 547 files changed, 829 insertions(+), 829 deletions(-) diff --git a/README.md b/README.md index 68a8194b..85ea75cc 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Press logo

Press

-**Full Service Cloud Hosting For The Frappe Stack - Powers Frappe Cloud** +**Full Service Cloud Hosting For The Jingrow Stack - Powers Jingrow Cloud** [![codecov](https://codecov.io/gh/jingrow/press/branch/master/graph/badge.svg?token=0puvH0jUx9)](https://codecov.io/gh/jingrow/press) [![unittests](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml/badge.svg)](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml) @@ -22,13 +22,13 @@ ## Press -Press is a 100% open-source cloud hosting for the Frappe stack. +Press is a 100% open-source cloud hosting for the Jingrow stack. ### Motivation We originally hosted our customer sites on an internal cloud platform called "Central," designed to automate creating and hosting sites when customers signed up on our website. Central was primarily built to host ERPNext, our flagship product. However, as our customers' needs evolved, they began requesting the ability to host custom applications, a feature that was not a priority in Central. -Additionally, customers lacked full control over their servers—no SSH access, no ability to manage updates, and limited flexibility in interacting with their environment. This led us to launch Frappe Cloud, to build a self-serve cloud platform that would empower our customers with complete control over their hosting experience. +Additionally, customers lacked full control over their servers—no SSH access, no ability to manage updates, and limited flexibility in interacting with their environment. This led us to launch Jingrow Cloud, to build a self-serve cloud platform that would empower our customers with complete control over their hosting experience. ### Key Features @@ -37,7 +37,7 @@ Additionally, customers lacked full control over their servers—no SSH access, - **Permissions**: Granular access controls let team owners manage roles and resources efficiently, ensuring users have access only to relevant information and actions for their roles. -- **Simplified Management**: Press streamlines site management with automated backups, real-time monitoring, role-based access, and easy scaling, making it ideal for growing Frappe environments. +- **Simplified Management**: Press streamlines site management with automated backups, real-time monitoring, role-based access, and easy scaling, making it ideal for growing Jingrow environments. - **Billing**: Automated billing supports daily or monthly subscriptions, flexible payment methods, wallet credits, and ERP integration, simplifying customer invoicing and payments. @@ -55,9 +55,9 @@ Additionally, customers lacked full control over their servers—no SSH access, ### Under the Hood -- [**Frappe Framework**](http://git.jingrow.com/jingrow/jingrow): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API. +- [**Jingrow Framework**](http://git.jingrow.com/jingrow/jingrow): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API. -- [**Frappe UI**](http://git.jingrow.com/jingrow/jingrow-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework. +- [**Jingrow UI**](http://git.jingrow.com/jingrow/jingrow-ui): A Vue-based UI library, to provide a modern user interface. The Jingrow UI library provides a variety of components that can be used to build single-page applications on top of the Jingrow Framework. - [**Agent**](http://git.jingrow.com/jingrow/agent): A flask app designed to work along with Press. It provides a CLI interface for Press to communicate with the sites and benches. @@ -88,8 +88,8 @@ pre-commit install
- - Frappe Technologies + + Jingrow Technologies
diff --git a/backbone/README.md b/backbone/README.md index aaf78e0c..333dccbe 100644 --- a/backbone/README.md +++ b/backbone/README.md @@ -1,6 +1,6 @@ # Backbone -> Note: Not to be confused with the scrapped project **Frappe Backbone** +> Note: Not to be confused with the scrapped project **Jingrow Backbone** ## Installation diff --git a/backbone/packer/cloud-init-scaleway.yml b/backbone/packer/cloud-init-scaleway.yml index f386e538..c619d153 100644 --- a/backbone/packer/cloud-init-scaleway.yml +++ b/backbone/packer/cloud-init-scaleway.yml @@ -7,7 +7,7 @@ users: shell: /usr/bin/bash - name: jingrow - gecos: Frappe + gecos: Jingrow groups: sudo lock_passwd: false passwd: $6$rounds=4096$GytYXpLxIgl5SZ$C3zfa5zfD66lfm/TEgtlAVYbl3IjEK9ZAND4qnI7fXGWGhqUFl7m2DD25VjimMfqH3SepUBTUwuyiubwpTUtc/ diff --git a/backbone/vagrant/Vagrantfile b/backbone/vagrant/Vagrantfile index 8bba7cd4..5c0efffa 100644 --- a/backbone/vagrant/Vagrantfile +++ b/backbone/vagrant/Vagrantfile @@ -28,7 +28,7 @@ Vagrant.configure("2") do |config| # IP Pattern based on server types # Proxy x.x.1.x - # Frappe x.x.2.x + # Jingrow x.x.2.x # Database x.x.3.x # Other x.x.4.x diff --git a/dashboard/README.md b/dashboard/README.md index 344465ec..ce363a3e 100644 --- a/dashboard/README.md +++ b/dashboard/README.md @@ -1,6 +1,6 @@ # Dashboard -Dashboard is a VueJS application that is the face of Frappe Cloud. This is what the end users (tenants) see and manage their FC stuff in. The tenants does not have access to the desk, so, this is their dashboard for managing sites, apps, updates etc. +Dashboard is a VueJS application that is the face of Jingrow Cloud. This is what the end users (tenants) see and manage their FC stuff in. The tenants does not have access to the desk, so, this is their dashboard for managing sites, apps, updates etc. Technologies at the heart of dashboard: diff --git a/dashboard/index.html b/dashboard/index.html index b8a3f1a0..e47b348b 100644 --- a/dashboard/index.html +++ b/dashboard/index.html @@ -4,14 +4,14 @@ - Frappe Cloud + Jingrow Cloud diff --git a/dashboard/src/components/AlertAddressDetails.vue b/dashboard/src/components/AlertAddressDetails.vue index ff5e2b73..68f65193 100644 --- a/dashboard/src/components/AlertAddressDetails.vue +++ b/dashboard/src/components/AlertAddressDetails.vue @@ -1,7 +1,7 @@ diff --git a/dashboard/src/components/settings/profile/AccountPartner.vue b/dashboard/src/components/settings/profile/AccountPartner.vue index 2016f9cf..8460bf13 100644 --- a/dashboard/src/components/settings/profile/AccountPartner.vue +++ b/dashboard/src/components/settings/profile/AccountPartner.vue @@ -1,8 +1,8 @@